laravel where orwhere多个 加括号
在数据库查询似乎and优先级总是高于or,然后当然需要将需要先执行的用括号括起来
我试过在模型里面写类似scope的函数,用Eloquent ORM调用自己写的方法,发现这种方法并不是将写的数据查询括起来封装成一个整体,而是直接就是原来的查询代码简化,提高代码复用性的赶脚,所以这种失败了。。
第二种想到了 ->where(function($query){
$query->where()->orwhere();
})
但是这种不能放参数进去!!!比如如果function 里面要写
$query->where('items' ,'like',$keywords)->orwhere('content' ,'like',$keywords);
会报错,在外面的$keywords变量传不进去,于是改成这样
})
然后就出现函数第二个变量的报错了,
所以我想知道有没有什么方法可以将$keywords传进去的啊!!!
难道只能用whereraw的方式吗?
求指导
我试过在模型里面写类似scope的函数,用Eloquent ORM调用自己写的方法,发现这种方法并不是将写的数据查询括起来封装成一个整体,而是直接就是原来的查询代码简化,提高代码复用性的赶脚,所以这种失败了。。
第二种想到了 ->where(function($query){
$query->where()->orwhere();
})
但是这种不能放参数进去!!!比如如果function 里面要写
$query->where('items' ,'like',$keywords)->orwhere('content' ,'like',$keywords);
会报错,在外面的$keywords变量传不进去,于是改成这样
->where(function($query,$keywords){
- $query->where('items' ,'like',$keywords)->orwhere('content' ,'like',$keywords);})
然后就出现函数第二个变量的报错了,
所以我想知道有没有什么方法可以将$keywords传进去的啊!!!
难道只能用whereraw的方式吗?
求指导
2 个回复
FiveSay - 成武
赞同来自: 王赛
FiveSay - 成武
赞同来自:
刚刚接触 php3 个月,就能上手 laravel 已经很难得了,由于我自己一路都是跟源码过来的,所以没有办法给你推荐系统学习的资料。看看社区的朋友们是不是有好的资料推荐。