Eloquent:用别名获取相关模型

时间:2016-12-14 10:37:48

标签: laravel eloquent

我有一个视图,其中显示了相关的模型属性。

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

我宁愿把它当作

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

在我的控制器中选择区域设置。

例如主模型:

查看:

{{ $product->title }}

控制器:

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

如何为相关设置别名? 或者有更好的选择吗?

2 个答案:

答案 0 :(得分:1)

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

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

在视图文件中,我使用:

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

或者,您可以使用App::getLocale()获取当前区域设置。

答案 1 :(得分:0)

您可以使用select(),但您必须在select()

中写下其他列的名称
 if ($locale === 'en') {
        $product = Product::where(id of something)
    ->select('title_en as title','col2','col3'....)
    ->get()
    }