繁体   English   中英

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

[英]Laravel eloquent orm query using orwhere clause

嗨,我一直在使用此查询基于orWhere子句检索数据

$q->where('created', $date);
$q->where(function ($query) {
  $query->where('gender', 'Male')
        ->where('age', '>=', 18);
})->orWhere(function($query) {
  $query->where('gender', 'Female')
        ->where('age', '>=', 30);   
})->orWhere(function($query) {
  $query->where('gender', 'Orthodox')
        ->where('age', '>=', 35);

第一个orWhere子句运行正常,但是第二个不是。 这似乎是一个范围问题,即带有()的东西

正确分组您的条件,应该没问题。

$q->where('created', $date);
$q->where(function ($query) {
    $query->where(function ($query) {
        $query->where('gender', 'Male')
            ->where('age', '>=', 18);
    })->orWhere(function ($query) {
        $query->where('gender', 'Female')
            ->where('age', '>=', 30);
    })->orWhere(function ($query) {
        $query->where('gender', 'Orthodox')
            ->where('age', '>=', 35);
    });
});

使用其他where()闭包:

$q->where('created', $date);
$q->where(function ($q) {
     $q->orWhere(function($query) {
        $query->where('gender', 'Male')
            ->where('age', '>=', 18);
     })->orWhere(function($query) {
        $query->where('gender', 'Female')
            ->where('age', '>=', 30);   
     })->orWhere(function($query) {
        $query->where('gender', 'Orthodox')
            ->where('age', '>=', 35);
     });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM