为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
胡说叔叔 2019-10-15 10:58:02
我怎么说 WHERE (a = 1 OR b =1 ) AND (c = 1 OR d = 1)对于更复杂的查询,我应该使用原始SQL吗?
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

利用参数分组(Laravel 4.2)。以您的示例为例:


Model::where(function ($query) {

    $query->where('a', '=', 1)

          ->orWhere('b', '=', 1);

})->where(function ($query) {

    $query->where('c', '=', 1)

          ->orWhere('d', '=', 1);

});


查看完整回答
反对 回复 2019-10-15
?
慕森王

TA贡献1777条经验 获得超3个赞

如果要在Laravel 4中为a,b,c,d使用参数


Model::where(function ($query) use ($a,$b) {

    $query->where('a', '=', $a)

          ->orWhere('b', '=', $b);

})

->where(function ($query) use ($c,$d) {

    $query->where('c', '=', $c)

          ->orWhere('d', '=', $d);

});


查看完整回答
反对 回复 2019-10-15
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

如果您想在laravel 4中使用括号并且不要忘记返回

(至少在Laravel 4中),则需要在示例中使用$ a,$ b括号


$a = 1;

$b = 1;

$c = 1;

$d = 1;

Model::where(function ($query) use ($a, $b) {

    return $query->where('a', '=', $a)

          ->orWhere('b', '=', $b);

})->where(function ($query) use ($c, $d) {

    return $query->where('c', '=', $c)

          ->orWhere('d', '=', $d);

});

这是我的结果: 

//img1.sycdn.imooc.com//5da535e30001d10712740781.jpg

查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 955 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信