在我的控制器我有以下代码:laravel 5查询急于上加载多个约束
//Example Data;
$date = Carbon::now();
$order = 'name'; // it can be by name, id or created_at;
// Approach i try for getting data of user with eager loaded products
//1st approach
$user = User::with([
'products' => function ($query) use ($date, $order) {
$query->where('created_at', $date)->orderBy($order, 'desc');
},
])->get();
//2nd approach
$user = User::with([
'products' => function ($query) use ($date, $order) {
$query->where('created_at', $date);
$query->orderBy($order, 'desc');
},
])->get();
在这两个办法,只有1号条件的查询被读取。
我要让 where()
条款和 orderBy
在渴望加载的数据进行过滤。
有什么我错过了吗?我的代码错了吗?
的可能的复制[如何创建多个地方使用的子句查询Laravel雄辩?](http://stackoverflow.com/questions/19325312/how-to-create-multiple-where-clause-query-using -laravel-eloquent) – Veerendra
@Veerendra nope,请仔细阅读标题。 – Jefsama
第一件事你的第一和第二种方法使相同的意义只是写的模式是不同的。其次,你甚至没有尝试过这两种方法中的第二个where子句。请将代码与您为第二个where子句尝试的内容一起发布。请参阅示例$ users = User :: with(array( 'posts'=> function($ query,$ title){$ query-> where('title','=',$ title);}, 'posts.tags'=> function($ query){$ query-> where('tag_type','=','admin')} )) - > get(); – Veerendra