2016-12-14 51 views
0

我有一个视图,其中显示相关的模型属性。雄辩:获取别名的相关模型

{{ $product->category->title_en }} 

我宁愿把这个像

{{ $product->category->title }} 

,并在我的控制器的区域选择。

例如与主要型号:

查看:

{{ $product->title }} 

控制器:

if ($locale === 'en') { 
    $product = Product::where(id of something)->get([ 
     'title_en AS title' 
    ]) 
} 

如何设置别名相关? 还是有更好的选择?

+0

从哪里得到'$ locale' ? –

+1

有一些很棒的软件包可以帮你处理,所以你可以编写'{{$ product-> category-> title}}',并且我会一直根据用户请求的地区设置获得正确的本地化标题这一页。 https://github.com/dimsav/laravel-translatable –

+0

或者你可以等待1月份的Laravel 5.4发布:D –

回答

1

我创建这个辅助函数为我自己的项目。由于语言环境是所有网址中的第一个,因此我会将其展开并像这样使用它。

function translate($model, $column) 
{ 
    $url = explode('/', Request::path()); 
    return $model[$column . '_' . $url[0]]; 
} 

在视图文件,我用:

{{ translate($product, 'title') }} 

或者您可以使用App::getLocale()来获得当前的语言环境。

0

你可以使用select()但你必须写其他列的名称太select()

if ($locale === 'en') { 
     $product = Product::where(id of something) 
    ->select('title_en as title','col2','col3'....) 
    ->get() 
    }