问题描述
我有这两个模型:Tag
和Translate
,我有这些表:tags
,translates
,translatables
,标记模型使用可翻译的。 / p>
我的表格列如下:
translates: translatables: tags:
id name lang | translate_id translatable_id translatable_type | id
-- ---- ---- | ------------- --------------- ----------------- | --
| |
我想编写一个函数来获取基于app locale
的标记的当前翻译,这意味着我应该基于可翻译表数据并使用translateble_id
和translatable_type
来查找翻译表在转换表中并获取基于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();
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)