第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

是否可以將嵌套的 Where 分組在 laravel 上的 Eager 加載中與父級(jí)?

是否可以將嵌套的 Where 分組在 laravel 上的 Eager 加載中與父級(jí)?

PHP
ITMISS 2022-05-27 16:51:03
我一直在尋找一種方法來(lái)從 Laravel 的急切加載查詢中對(duì)嵌套的 wheres 進(jìn)行分組,假設(shè)我有 3 個(gè)模型, An Order, AReview和 a Product。為簡(jiǎn)單起見(jiàn),Order有一個(gè)Review和一個(gè)Product。我想獲取所有的orders數(shù)據(jù)和reviews丟失或丟失的數(shù)據(jù)(我可以在代碼中對(duì)它們進(jìn)行分組,沒(méi)有問(wèn)題)。但我還想檢查登錄的用戶是下訂單的人(在課堂上)還是產(chǎn)品的賣(mài)家(在課堂上)。productbuyer_rateseller_rateuser_idOrderuser_idProduct問(wèn)題是我找不到方法告訴 Eloquent 我想要這個(gè)邏輯:('reviews'.'buyer_rate' != null OR 'reviews'.'seller_rate' != null) AND ('orders'.'user_id' == Auth::user()->id OR 'orders'.'producto'.'user_id' == Auth::user()->id)這是我的代碼:(但我無(wú)法創(chuàng)建第二個(gè)條件組)我的條件失敗,因?yàn)樗粫?huì)計(jì)算兩組之間的 AND 邏輯。$reviews = App\Order::with([    'review' => function ($q) {        $q->Where(function($query) { // Group Where buyer or seller's rate is missing.            $query->Where('buyer_rate', '!=', null);            $query->orWhere('seller_rate', '!=', null);        });    },    'producto' => function ($q) {        $q->select('id', 'user_id', 'nombre', 'precio', 'descripcion')        ->orWhere('user_id', Auth::user()->id);    },])->orWhere('user_id', Auth::user()->id)->get();
查看完整描述

1 回答

?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

我認(rèn)為您需要使用whereHas(反過(guò)來(lái)使用exists查詢)。如果你只使用 with,你仍然會(huì)得到每一個(gè)Order。您只過(guò)濾哪些相關(guān)Review或Product急切加載。


使用whereHasor whereExists,您首先過(guò)濾Order模型,然后加載關(guān)系。


App\Order::where(function ($query) {

    $query->where('user_id', auth()->id())->orWhereHas('producto', function ($producto) {

        $producto->where('user_id', auth()->id());

    });

})

->whereHas('review', function ($review) {

    $review->whereNotNull('buyer_rate')->orWhereNotNull('seller_rate');

})

->with([

    'review',

    'producto' => function ($producto) {

        $producto->select('id', 'user_id', 'nombre', 'precio', 'descripcion');

    },

])

->get();

auth()->id()auth()->user()->id與或相同Auth::user()->id


查看完整回答
反對(duì) 回復(fù) 2022-05-27
  • 1 回答
  • 0 關(guān)注
  • 122 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)