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

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

動態(tài)查詢雄辯

動態(tài)查詢雄辯

PHP
慕容3067478 2022-01-08 17:23:59
我有這 2 個(gè)鏈接模型:jobs和job_translations. 一份工作有很多翻譯。所以在我的工作模式中,有:/** * Get the translations for the job. */public function translations(){    return $this->hasMany('App\Models\JobTranslation');}在我的控制器中,我想像這樣動態(tài)地構(gòu)建一個(gè)查詢:$query = Job::query();if ($request->has('translation')) {            $query->translations()->where('external_translation', 'ilike', '%'.$request->translation.'%');        }$jobs = $query->paginate(10);我有這個(gè)錯(cuò)誤:調(diào)用未定義的方法 Illuminate\Database\Eloquent\Builder::translations()是否可以使用 Eloquent 進(jìn)行這樣的動態(tài)查詢?
查看完整描述

2 回答

?
PIPIONE

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

對的,這是可能的。您正在尋找的是whereHas('translations', $callback)而不是translations():


$query = Job::query();

if ($request->has('translation')) {

    $query->whereHas('translations', function ($query) use ($request) {

        $query->where('external_translation', 'ilike', '%'.$request->translation.'%');

    });

}


$jobs = $query->paginate(10);

您的查詢可以通過使用when($condition, $callback)而不是進(jìn)一步改進(jìn)if:


$jobs = Job::query()

    ->when($request->translation, function ($query, $translation) {

        $query->whereHas('translations', function ($query) use ($translation) {

            $query->where('external_translation', 'ilike', "%{$translation}%");

        });

    })

    ->paginate(10);


查看完整回答
反對 回復(fù) 2022-01-08
?
臨摹微笑

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

您應(yīng)該在下一個(gè)鏈?zhǔn)讲樵冎袡z測到急切加載的問題,如下所示:

$query = Job::with('translations')->query();


查看完整回答
反對 回復(fù) 2022-01-08
  • 2 回答
  • 0 關(guān)注
  • 134 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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