使用 OR 构建 Laravel 雄辩的查询

真正的爸爸

eloquent查询过滤器:

return $this->games()
        ->where(function ($query) {
            $query->where('active_player_id', '=', $this->id)
                ->where('stage_name', '<>', 'setup');
        })
        ->orWhere(function ($query) {
            $query->where('active_player_id', '<>', $this->id)
                ->where('stage_name', '=', 'setup');
        });

像这样构建到 SQL 中:

where `games_players`.`player_id` = '1' 
and (`active_player_id` = '1' and `stage_name` <> 'setup') 
or (`active_player_id` <> '1' and `stage_name` = 'setup')

如何更改eloquent代码以构建此查询(围绕 的括号OR):

where `games_players`.`player_id` = '1' 
and (
     (`active_player_id` = '1' and `stage_name` <> 'setup') 
  or (`active_player_id` <> '1' and `stage_name` = 'setup')
    ) 
斯莱特伦

你可以通过这样做来实现:

    ->where('active_player_id',1)
    ->where(function($q){
          $q->where([ ['active_player_id', 1],['stage_name','!=', 'setup'] ])
            ->orWhere([ ['active_player_id','!=', 1],['stage_name', 'setup'] ]
    })->get()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel雄辩-使用groupBy并在同一查询中

Laravel 4雄辩的查询使用WHERE和OR AND OR?

Laravel-使用雄辩的查询构建器在select中添加自定义列

在雄辩的查询中使用Laravel模型方法

laravel:如何在雄辩的查询中使用LOWERCASE函数?

雄辩的构建哪里从数组查询

在orWhere()中使用AND的Laravel雄辩查询

使用Laravel查询构建器构建查询

如何使用Laravel构建MySQL查询

在laravel雄辩中使用子查询进行groupBy('created_at')

在Laravel雄辩的查询构建器中使用whereIn和where

使用laravel雄辩地通过group by使用子查询

Laravel雄辩的查询范围与使用DB :: raw的联接

Laravel雄辩的查询使用withCount和get([name as value])

雄辩的Laravel联合查询

如何在laravel雄辩的selectRaw方法中使用子查询?

使用关系在单个雄辩的查询laravel中获取数据?

在雄辩的模型中使用条件where子句构建查询

Laravel使用变量构建查询

如何使用委托过滤Laravel 5雄辩的查询

Laravel使用Laravel雄辩的联接查询

laravel 5-使用雄辩或查询构建器连接表时,选择所有不带星号的列

使用雄辩的关系laravel进行计数查询

Laravel雄辩。如何使用group_by进行查询并计算行数

Laravel 雄辩的 orm 查询使用 orwhere 子句

使用 Laravel 的 Eloquent 进行查询构建

Laravel Eloquent - 使用关系构建“where not”查询

使用 Laravel 雄辩查询加入和 OrderBy

使用 Eloquent 的 Laravel 查询构建器