Laravel 如何检索两个模型之间的关系,其他模型与它们都有多态关系
我有这两个模型:Laravel 如何检索两个模型之间的关系,其他模型与它们都有多态关系,laravel,eloquent,polymorphic-relationship,Laravel,Eloquent,Polymorphic Relationship,我有这两个模型:标签和翻译,我有这两个表:标签,翻译,可翻译,标签模型使用可翻译 我的表列如下所示: translates: translatables: tags: id name lang | translate_id translatable_id translatable_type | id -- ---- ---- | ---------
标签
和翻译
,我有这两个表:标签
,翻译
,可翻译
,标签模型使用可翻译
我的表列如下所示:
translates: translatables: tags:
id name lang | translate_id translatable_id translatable_type | id
-- ---- ---- | ------------- --------------- ----------------- | --
| |
我想编写一个函数,根据app locale
获取标记的当前翻译,这意味着我应该根据可翻译表数据,使用translateble\u id
和translateable\u type
在翻译表中查找id,并根据lang获取名称。
你知道我怎么做吗
这是可翻译的特征:
trait Translatable{
public function translates(){
return $this->morphToMany(Translate::class,'translatable','translatables','translatable_id','translate_id');
}
}
这就是我获取区域设置的方式:
$locale=app()->getLocale();
我用querybuilder翻译标签,如:
$locale=app()->getLocale();
$tags=DB::table('translates as T')
->where('lang','=',$locale)
->join('translatables as R','R.translate_id','=','T.id')
->where('R.translatable_type','=','App\Models\Tag')
->join('tags as M','R.translatable_id','=','M.id')
->get();
但我想用一个模型和雄辩的函数。你能更明确地说明你的关系是什么吗?tag->name与语言环境有何联系?在本例中,语言环境在哪里?@apokryfos如果您能看看编辑后的问题,我将不胜感激