在我的控制器我有以下代碼: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