Laravel 渴望使用 Where 约束
Laravel Eager with Where constraint
我有两种预加载和分页方法。但问题是我也必须使用 where 约束,并且出现偏移量 0 错误。
public function showAllOrders(){
$orders = \admin\Order::with('orderfiles','paymentStatus','orderStatus','orderDelivery','flexibleDelivery')->paginate(20);
return View('admin.all_orders')
->with('orders',$orders);
}
public function showAllPaidOrders(){
$orders = \admin\Order::with(array('orderfiles','orderStatus','orderDelivery','flexibleDelivery','paymentStatus'=>function($query){
$query->where('status', '=', 'Paid');
}))->paginate(20);
return View('admin.all_orders')
->with('orders',$orders);
}
showAllOrders 工作正常,但是当我将 where 约束与 showAllPaidOrders 一起使用时,出现偏移错误....
1/2
ErrorException in Collection.php line 837:
Undefined offset: 0
2/2
ErrorException in Collection.php line 837:
Undefined offset: 0 (View: E:\content\xampp\htdocs\l5\resources\views\admin\all_orders.blade.php)
即使两个 blade 视图相同。唯一的区别是“Where Constraint”
我用 wherehas 函数解决了这个问题
public function showAllOrdersbySite($domain_id){
$orders = Order::whereHas('paymentStatus', function ($query) use($domain_id) {
$query->where("domain_id","=",$domain_id);
})->orderby('tbl_orders.created_at', 'desc')->paginate(20);
return View('admin.all_orders')
->with('orders',$orders);
}
即使您想检查倍数关系,您也可以根据需要一次又一次地添加 whereHas。
我有两种预加载和分页方法。但问题是我也必须使用 where 约束,并且出现偏移量 0 错误。
public function showAllOrders(){
$orders = \admin\Order::with('orderfiles','paymentStatus','orderStatus','orderDelivery','flexibleDelivery')->paginate(20);
return View('admin.all_orders')
->with('orders',$orders);
}
public function showAllPaidOrders(){
$orders = \admin\Order::with(array('orderfiles','orderStatus','orderDelivery','flexibleDelivery','paymentStatus'=>function($query){
$query->where('status', '=', 'Paid');
}))->paginate(20);
return View('admin.all_orders')
->with('orders',$orders);
}
showAllOrders 工作正常,但是当我将 where 约束与 showAllPaidOrders 一起使用时,出现偏移错误....
1/2 ErrorException in Collection.php line 837: Undefined offset: 0 2/2 ErrorException in Collection.php line 837: Undefined offset: 0 (View: E:\content\xampp\htdocs\l5\resources\views\admin\all_orders.blade.php)
即使两个 blade 视图相同。唯一的区别是“Where Constraint”
我用 wherehas 函数解决了这个问题
public function showAllOrdersbySite($domain_id){
$orders = Order::whereHas('paymentStatus', function ($query) use($domain_id) {
$query->where("domain_id","=",$domain_id);
})->orderby('tbl_orders.created_at', 'desc')->paginate(20);
return View('admin.all_orders')
->with('orders',$orders);
}
即使您想检查倍数关系,您也可以根据需要一次又一次地添加 whereHas。