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

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

Laravel 一對(duì)多只從集合中抓取一個(gè)對(duì)象

Laravel 一對(duì)多只從集合中抓取一個(gè)對(duì)象

PHP
小怪獸愛(ài)吃肉 2023-04-28 14:41:36
我有兩個(gè)模型,一個(gè)Phrase模型和一個(gè)Translations模型。一個(gè)phrase可以有很多translations。在我的phrase模型中,我有以下關(guān)系:public function translations(){    return $this->hasMany(Translation::class);}在我的一個(gè)頁(yè)面上,我只想顯示基于某種語(yǔ)言的翻譯。例如,我要顯示 10 個(gè)短語(yǔ),包括它們的翻譯。我對(duì)數(shù)據(jù)庫(kù)中的每個(gè)短語(yǔ)有 5 個(gè)翻譯。使用 awhereHas我只返回 10 個(gè)短語(yǔ),包括它們各自的翻譯。到目前為止,一切都很好。我的whereHas:$phrases = Phrase::with('translations')->whereHas('translations', function ($query) {    return $query->where('lang', 'en');})->get();這會(huì)將具有每個(gè)關(guān)系的短語(yǔ)集合返回到翻譯版本。在我的展示頁(yè)面上,我不能簡(jiǎn)單地這樣做:@foreach($phrases as $phrase)    {{ $phrase->name }} // The actual Phrase name    {{ $phrase->translation->name }} // The translated version of the phrase@endforeach首先,因?yàn)閠ranslation此處不存在關(guān)系:$phrase->translation,其次,它們translations也是一個(gè)集合。所以我的問(wèn)題是,如果您了解我要實(shí)現(xiàn)的目標(biāo),那么是否可以通過(guò)某種簡(jiǎn)單的方式發(fā)布類似于我發(fā)布的 foreach 之類的東西?附言。我知道我可以簡(jiǎn)單地將我的原始集合轉(zhuǎn)換為數(shù)組,但這不是我想要的。
查看完整描述

1 回答

?
拉丁的傳說(shuō)

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

我建議你使用一個(gè)單獨(dú)的hasOne關(guān)系從你的數(shù)據(jù)庫(kù)中獲取一個(gè)翻譯,你可以在你的查詢中進(jìn)一步限制它。


Phrase模型


class Phrase

{

    public function translation()

    {

        return $this->hasOne(Translation::class);

    }

}

控制器


$phrases = Phrase::with([

    'translation' => function ($query) {

        $query->where('lang', 'en');

    },

])->get();

這應(yīng)該會(huì)產(chǎn)生預(yù)期的結(jié)果,但未經(jīng)測(cè)試。


查看完整回答
反對(duì) 回復(fù) 2023-04-28
  • 1 回答
  • 0 關(guān)注
  • 145 瀏覽

添加回答

舉報(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)