SQL 查询到 Eloquent 的转换

Posted

技术标签:

【中文标题】SQL 查询到 Eloquent 的转换【英文标题】:SQL query to Eloquent conversion 【发布时间】:2018-02-23 18:55:46 【问题描述】:

如何将下面的 SQL 语句转换为 Eloquent?

SELECT * FROM `messages` WHERE (`to`=$myID AND `from`=$guestID) OR (`to`=$guestID AND `from`=$myID)

【问题讨论】:

使用嵌套查询。我建议从 eloquent 和 query builder 文档开始 【参考方案1】:

对parameter grouping 使用whereorWhere 闭包:

Message::where(function($q) use($myId, $guestId) 
    $q->where('to', $myId)->where('from', $guestId);
)
->orWhere(function($q) use($myId, $guestId) 
    $q->where('to', $guestId)->where('from', $myId);
)
->get();

【讨论】:

以上是关于SQL 查询到 Eloquent 的转换的主要内容,如果未能解决你的问题,请参考以下文章

如何将左连接横向 SQL 查询转换为 Laravel Eloquent 查询?

我想将 SQL 查询转换为 Laravel eloquent

将 SQL 查询转换为 Laravel Eloquent [关闭]

将 Sql 查询转换为 Eloquent Laravel 5.6

如何将复杂的 sql 查询转换为 laravel Eloquent

如何将此查询从SQL(mysql)转换为Eloquent(Laravel)