簡體   English   中英

如果不存在關系,Laravel會獲得具有默認值的雄辯關系?

[英]Laravel get Eloquent relation with default value if relation is not present?

我有一個Post模型中,每個崗位都有例如許多翻譯: rufren - ( post_translations表),用於獲取所有文章與特定的翻譯工作代碼是這樣的(如fr ):

 $locale = 'fr';
 $posts = Post::with([
        'translations' => function($q) use($locale){
            $q->where('language', $locale);
        }
    ])->get();

但是$posts中的一些沒有fr翻譯,所有posts都有en translation。

我想獲取所有帶有fr翻譯的帖子,而對於沒有fr帖子,請返回en translation!

我是否必須手動執行此操作? ei遍歷所有帖子並在沒有fr或laravel方式的帖子上添加en翻譯。

嘗試此解決方案以獲取所有fr:

$posts = Post::whereHas('translations', function($q) use($locale){
    $q->where('language', $locale);
})->get();

希望對您有所幫助:)

從您寫的內容來看,我知道帖子總是用英語撰寫,然后再翻譯成其他語言。

我不知道您有什么用,但是我建議您使用法語和英語翻譯查詢所有帖子,然后在打印時過濾它們

$locale = 'fr';
$posts = Post::with([
    'translations' => function($q) use($locale){
        $q->where('language', $locale);
        $q->orWhere('language', 'en');
    }
])->get();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM