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。