其他模型与它们之间具有多态关系的两个模型之间如何检索关系

问题描述

我有这两个模型:TagTranslate我有这些表:tagstranslatestranslatables标记模型使用可翻译的。 / p>

我的表格列如下:

  translates:                      translatables:                            tags: 
id     name  lang   |  translate_id    translatable_id     translatable_type |  id
--     ----  ----   |  -------------   ---------------     ----------------- |  --
                    |                                                        |

我想编写一个函数获取基于app locale标记的当前翻译,这意味着我应该基于可翻译表数据并使用translateble_idtranslatable_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 (将#修改为@)