我正在寻找翻译问题的解决方案。当我必须返回翻译时,在给定的语言环境中找不到问题,就会发生问题。我需要返回默认值。
这是我的代码,它返回8个顶级类别:
$category = Category::with('childCategories.translation', 'childCategories.image')
->with(['childCategories' => function ($query)
{
$query->take(8);
}])
->where('id', 1018)->first();
并使用以下关系进行建模:
public function childCategories()
{
return $this->hasManyThrough('App\Models\Category',
'App\Models\CategoryToCategory',
'id_parent_category',
'id',
'id',
'id_category');
}
public function translation($locale = null)
{
if ($locale == null) {
$locale = \App::getLocale();
}
return $this->hasOne('App\Models\CategoryLanguage', 'id_category', 'id')->where('locale', '=', $locale);
}
我在考虑两种解决方案:
$locale
(用于默认加载)有没有更简单,更有效的方法来做到这一点?