我已经关注了doc。我创建了两个表:
现在我更改了列name => key
和value
,因为我可以通过查询key
获取值(lang文本)。
比如说:
$r = 'DE';//App::getLocale(); // 'fr'
$germany = Country::where('code', $r)->first();
// I want to get value where key= 'contacts-last-name'
$translation = $germany->translate($r, true)->where('key', 'contacts-last-name')->value;
print_r($translation);
exit("----");
我明白了:
ERROR: Undefined property
如何使用新查询/子查询(键)获取特定值。
这里的示例是我的方法和视图
更新了以下方法::
$translation = $germany->translate($r, true)->where('key', 'contacts-last-name')->first();
echo "<pre>"; print_r($translation->toArray()); exit("----");
得到了答案:
Array
(
[id] => 1
[country_id] => 83
[key] => contacts-last-name
[value] => Achternaam
[locale] => DE
)
在视图页面中,我有一个表单:
<label class="col-sm-2 control-label">{{trans('labels.contacts-first-name')}}</label>
<div class="col-sm-4">
<input name="first_name" id="first_name" type="text" class="form-control" required disabled>
</div>
<label class="col-sm-2 control-label">{{trans('labels.contacts-last-name')}}</label>
<div class="col-sm-4">
<input type="text" id="last_name" name="last_name" class="form-control" disabled>
</div>
对于这一个我有一个问题,我如何能够传递翻译数据并始终制作可转换的视图{{trans('labels.contacts-last-name')}}
答案 0 :(得分:0)
更改此行
$translation = $germany->translate($r, true)->where('key', 'contacts-last-name')->value;
到此,然后尝试
$translation = $germany->translate($r, true)->where('key', 'contacts-last-name')->get();
print_r($translation);
exit("----");
已更新
在你看来,{{trans('labels.contacts-last-name')}}
这种方式意味着你试图从项目中存在的lang目录中获取翻译,实际上这是基于手动文件/数组(密钥/对)的方式。
虽然你想要基于Dynamic / DB,但你可以这样做
将$translation
变量传递到您的视图中,例如
return view('form-view', compact('translation'));
然后在您的view
中,您可以执行此操作。
<label class="col-sm-2 control-label">{{$translation[0]->value}}</label>
<div class="col-sm-4">
<input name="first_name" id="first_name" type="text" class="form-control" required disabled>
</div>
<label class="col-sm-2 control-label">{{$translation[1]->value}}</label>
<div class="col-sm-4">
<input type="text" id="last_name" name="last_name" class="form-control" disabled>
</div>
答案 1 :(得分:0)
您可以像这样访问它:
$translation = $germany->{'contacts-last-name:'.$r};
https://github.com/dimsav/laravel-translatable/blob/master/src/Translatable/Translatable.php#L153
答案 2 :(得分:0)
之后
echo "<pre>"; print_r($translation->toArray()); exit("----");
结果:
Array
(
[id] => 1
[country_id] => 83
[key] => contacts-last-name
[value] => Achternaam
[locale] => DE
)