亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果關系有數據,Laravel Eloquent Model 返回數據

如果關系有數據,Laravel Eloquent Model 返回數據

PHP
蠱毒傳說 2023-09-22 16:40:50
美好的一天,我正在嘗試從 Eloquent 模型返回具有關系的數據。有沒有辦法(跳過/不返回)關系返回空數組作為結果的訂單? Order::with(['products' => function ($query) {        $query->whereHas('progress', function ($query) {            $query->where('progress_id', 30)->orWhereBetween('progress_id', [60, 90]);        });        $query->whereHas('product', function ($query) {            $query->where('vendor_id', 3);        })->with(['product' => function ($query) {            $query->select('id', 'identifier', 'reference', 'shipping_id');        }]);        $query->select('id', 'order_id', 'product_id', 'quantity');    }])        ->whereHas('products')        ->where('status_id', '=', 15)        ->select('orders.id', 'orders.customer_id', 'orders.created_at')        ->get();因此,在這種情況下,我不想收到該訂單,因為沒有包含該訂單的產品。另外,我不明白為什么我什至會得到結果,其中有 status_id = 15 的訂單,但沒有供應商_id = 3 的訂單。該怎么做?感謝您的閱讀。
查看完整描述

3 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

嘗試這個:


Order::whereHas('products' => function ($query) {

        $query->whereHas('progress', function ($query) {

            $query->where('progress_id', 30)->orWhereBetween('progress_id', [60, 90]);

        });

        $query->whereHas('product', function ($query) {

            $query->where('vendor_id', 3);

        });

        // $query->select('id', 'order_id', 'product_id', 'quantity'); // This line will cause error

    }])->with(['products', 'products.product:id,identifier,reference,shipping_id,vendor_id'])

       ->where('status_id', 15)

       ->get();


查看完整回答
反對 回復 2023-09-22
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

嘗試這個


Order::whereHas('products')->with(['products' => function ($query) {

        $query->whereHas('progress', function ($query) {

            $query->where('progress_id', 30)->orWhereBetween('progress_id', [60, 90]);

        });

        $query->whereHas('product', function ($query) {

            $query->where('vendor_id', 3);

        })->with(['product' => function ($query) {

            $query->select('id', 'identifier', 'reference', 'shipping_id');

        }]);

        $query->select('id', 'order_id', 'product_id', 'quantity');

    }])->where('status_id', '=', 15)

        ->select('orders.id', 'orders.customer_id', 'orders.created_at')

        ->get();


查看完整回答
反對 回復 2023-09-22
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

讓我們試試這段代碼:

Order::has('product', '>=', 1)->get();


查看完整回答
反對 回復 2023-09-22
  • 3 回答
  • 0 關注
  • 125 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號