Php 如果关系不存在,Laravel是否能获得与默认值的有说服力的关系?
我有一个Php 如果关系不存在,Laravel是否能获得与默认值的有说服力的关系?,php,mysql,laravel,eloquent,relational-database,Php,Mysql,Laravel,Eloquent,Relational Database,我有一个Post模型,每个Post都有许多翻译,例如:ru,fr,en(Post\u translations表),获取所有具有特定翻译的Post的工作代码如下(例如fr): 但是一些$posts没有fr翻译,所有posts都有en翻译 我想获得所有带有fr翻译的帖子,对于没有fr翻译的帖子,返回en翻译 我必须手动执行此操作吗?e、 i.在所有帖子中循环,将en翻译添加到那些没有fr的帖子中,或者有一种方法可以做到这一点 尝试此解决方案以获取所有fr: $posts = Post::where
Post
模型,每个Post都有许多翻译,例如:ru
,fr
,en
(Post\u translations
表),获取所有具有特定翻译的Post的工作代码如下(例如fr
):
但是一些$posts
没有fr
翻译,所有posts都有en
翻译
我想获得所有带有fr
翻译的帖子,对于没有fr
翻译的帖子,返回en
翻译
我必须手动执行此操作吗?e、 i.在所有帖子中循环,将
en
翻译添加到那些没有fr
的帖子中,或者有一种方法可以做到这一点 尝试此解决方案以获取所有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();
谢谢让我试着不工作!没有
fr
时不返回翻译谢谢,如何在视图中筛选?(刀片)
$locale = 'fr';
$posts = Post::with([
'translations' => function($q) use($locale){
$q->where('language', $locale);
$q->orWhere('language', 'en');
}
])->get();