如何使用Laravel Eloquent创建多个Where子句查询?

如何使用Laravel Eloquent创建多个Where子句查询?

我正在使用Laravel Eloquent查询构建器,我有一个查询,我希望WHERE在多个条件下有一个子句。它有效,但它并不优雅。

例:

$results = User::where('this', '=', 1)
    ->where('that', '=', 1)
    ->where('this_too', '=', 1)
    ->where('that_too', '=', 1)
    ->where('this_as_well', '=', 1)
    ->where('that_as_well', '=', 1)
    ->where('this_one_too', '=', 1)
    ->where('that_one_too', '=', 1)
    ->where('this_one_as_well', '=', 1)
    ->where('that_one_as_well', '=', 1)
    ->get();

有没有更好的方法来做到这一点,还是我应该坚持这种方法?


陪伴而非守候
浏览 1941回答 3
3回答

凤凰求蛊

您可以在匿名函数中使用子查询,如下所示: $results = User::where('this', '=', 1)             ->where('that', '=', 1)             ->where(function($query) {                 /** @var $query Illuminate\Database\Query\Builder  */                 return $query->where('this_too', 'LIKE', '%fake%')                     ->orWhere('that_too', '=', 1);             })             ->get();
打开App,查看更多内容
随时随地看视频慕课网APP