请问下 Laravel 的 ORM 查询条件能不能像 TP 那样传递数组作为条件呢
我看了文档,文档里面就讲了几个例子,一些比较复杂的查询压根就没讲到。
我现在有个需求就是在model里面,会根据传过来的条件来组装不同的查询条件,但是看文档的那种写法貌似不太行。
我自己查资料也看到有如下的格式的查询方式
$goodsShow = Goods::where('cate_id','=',$cate_id)
->where(function($query){
$query->where('status','<','61')
->orWhere(function($query){
$query->where('status', '91');
});
})->first();
这种查询用的很不习惯~
关于 LearnKu
就像 Leo 写的一样,首先创建一个 QueryBuilder
这个时候其实可以用各种判断了,比如:
因为 QueryBuilder 查询条件返回的都是自己 (return $this),所以你可以根据不同的条件组合下去。
最后调用 get 方法解析结果。
比如这是我在tinker里面写的一个小例子:
QueryBuilder 里面还有很多类似于原生 sql 的方法,包括 join 什么的,比如你可以写:
应该是可以组合成很复杂的查询,而且条理也很清晰。
@leo 多谢,我试试去
也许你可以试试 https://github.com/andersao/l5-repository/
昨天在处理其他问题,今天我这么试了下是好使的
@oustn 这个看着很清晰,我试试去
@oustn
直接使用ORM
返回的对象是
用query拼接查询出来
返回的对象是
找不到items: Collection ,不知道怎么使用查询后的数据,求指导
@BoomThanks 要用结果保存
$users = $query->get(),这个方法会 return 一个结果,而 $query 依然是 Builder@oustn OK了,感谢