Php getRouteByKeyName另一个模型laravel 我有两种型号: 类别 范畴转换
在模型类别中,我写道:Php getRouteByKeyName另一个模型laravel 我有两种型号: 类别 范畴转换,php,laravel,Php,Laravel,在模型类别中,我写道: public function getRouteKeyName(){ return 'alias'; } 列别名位于模型类别转换之下 如何从模型分类转换返回别名 我的代码不起作用 我试着: 在分类转换上添加getRouteKeyName: public function getRouteKeyName(){ return 'alias'; } 并在类别中添加: public function categoryTranslations() { r
public function getRouteKeyName(){
return 'alias';
}
列别名位于模型类别转换之下如何从模型分类转换返回别名
我的代码不起作用 我试着: 在分类转换上添加getRouteKeyName:
public function getRouteKeyName(){
return 'alias';
}
并在类别中添加:
public function categoryTranslations() {
return $this->hasOne(CategoriesTranslations::class);
}
public function getRouteKeyName() {
return $this->categoryTranslations->getRouteKeyName();
}
当需要按getRouteKeyName显示类别时,我在null上调用成员函数getRouteKeyName()时出错。如何修复它?您必须使用类别和类别转换之间的关系 在您的类别模型中:
public function categoriesTranslations()
{
return $this->hasMany(CategoriesTranslations::class);
}
public function getRouteKeyName()
{
$this->categoryTranslations->where('locale', Auth::user()->locale)->first()->getRouteKeyName();
}
现在,您可以从Categories模型的任何实例调用getRouteKeyName()
,它将从CategoriesTranslations表中提取它
**这里潜在的修复方法是添加
where()
语句和first()
方法。将Auth::user()->locale
更改为存储要使用的区域设置。我需要从模型类别中的模型类别Translations返回“alias”。我怎么能做到<代码>返回$category->categoryTranslations->getRouteKeyName()代码>?您能否更清楚地了解这两个模型之间的关系?每个类别是否有多个类别翻译?是的。在分类翻译中,我有多个分类的日期。@Tatata,我已经更新了我的答案一点。看看这对你是否有效。不过,我们仍然需要在这里定义适当的关系。如果是一对一的话,这就行了。如果是一对多的话,这会改变很多事情!那么,您想要第一个相关类别转换的路由键名称吗?想象一下:如果我们调用$category->categoryTranslations
,我们可能会得到3个返回的categoryTranslations实例。您希望从哪一个获取路由密钥名称?第一个?