WHERE (a = 1 OR (b = 1 and c = 5))
YourModal::where(function ($q) {
$q->where('a', 1)->orWhere(function($q2){
$q2->where('b', 1)->where('c', 5);
});
});
$attributes = ['first'=>'a','second'=>'b'];
$query->where(function ($query) use ($attributes)
{
foreach ($attributes as $key=>value)
{
//you can use orWhere the first time, doesn't need to be ->where
$query->orWhere($key,$value);
}
});
11条答案
按热度按时间am46iovg1#
如果你想在laravel4中使用括号,别忘了返回
在laravel4(至少)中,您需要在括号中使用$a,$b,如示例中所示
这是我的结果:
xienkqul2#
您还可以查询第一个或条件,然后应用另一个或条件
现在再加一个条件
$model
变量9avjhtql3#
使用sql括号的最佳方法是在laravel中使用回调函数。
你不必使用
=
符号,它是默认值如果您有一个在括号内包含括号的查询
免得说你想创造价值观
fcg9iug34#
您还可以使用查询范围使事情变得更整洁,因此可以执行以下操作:
那么在你的模型里
50few1ms5#
简单地用在拉威尔雄辩:
将生成如下查询:
tct7dpnv6#
通过查询,$a、$b、$c、$d可以是动态值
rta7y2nd7#
68bkxrlz8#
利用参数分组(laravel 4.2)。例如,它是这样的:
djmepvbi9#
另一种不使用模态的方法
数据库:股票columns:id,名称,公司名称,交易所名称,状态
bvpmtnay10#
如果你循环使用or条件,你不需要第二个$query->where来自其他帖子(实际上我认为你一般不需要,如果更简单的话,你可以在嵌套的where中使用orwhere)
l3zydbqr11#
如果你想使用参数a,b,c,d在拉维4