Laravel-可翻译 - "call to a member function save() on string"
Laravel-translatable - "call to a member function save() on string"
(更新)我使用 laravel-translatable 包并尝试插入带有翻译的行。尝试保存时,出现错误 "call to a member function save() on string".
我用键和值循环一个对象,例如:"food": "Nourriture",
在循环中我做了一个 select 的翻译 table:
$translationKey = \App\Translation::select('group', 'key')->where('group',
'global')->where('key', $key)->first();
我没有完全按照文档做,本来应该是:
$translationKey = \App\Translation::where('key', $key)->first();
不同之处在于我 select 列 'group' 和 'key',并且我做了一个额外的 "where" 来指定 group = global。那里有什么不对吗?
然后我尝试检查是否已经存在翻译。如果没有,我插入翻译:
if($translationKey->hasTranslation('fr')) {
continue;
}else{
//insert
$translationRow = $translationKey->translateOrNew('fr')->$key = $value;
$translationRow->save();
}
我使用 translateOrNew 而不是 translate ,否则我会收到错误消息:"Creating default object from empty value".
看来我不能执行 ->save()
方法,因为它是一个字符串,而不是它应该是的模型实例。所以我猜这行有问题吗?:
$translationKey = \App\Translation::select('group', 'key')->where('group',
'global')->where('key', $key)->first();
但是问题是什么?
我有一些错误 - 我需要 select 整行而不是个别列:
$translationKey = \App\Translation::where('group', 'global')
->where('key', 'about_us')
->first();
保存翻译时出现错误。我的 translations_translations table 有一个 "value" 列,所以这有效:
$translationKey->translateOrNew($locale)->value = $value;
$translationKey->save()
(更新)我使用 laravel-translatable 包并尝试插入带有翻译的行。尝试保存时,出现错误 "call to a member function save() on string".
我用键和值循环一个对象,例如:"food": "Nourriture",
在循环中我做了一个 select 的翻译 table:
$translationKey = \App\Translation::select('group', 'key')->where('group',
'global')->where('key', $key)->first();
我没有完全按照文档做,本来应该是:
$translationKey = \App\Translation::where('key', $key)->first();
不同之处在于我 select 列 'group' 和 'key',并且我做了一个额外的 "where" 来指定 group = global。那里有什么不对吗?
然后我尝试检查是否已经存在翻译。如果没有,我插入翻译:
if($translationKey->hasTranslation('fr')) {
continue;
}else{
//insert
$translationRow = $translationKey->translateOrNew('fr')->$key = $value;
$translationRow->save();
}
我使用 translateOrNew 而不是 translate ,否则我会收到错误消息:"Creating default object from empty value".
看来我不能执行 ->save()
方法,因为它是一个字符串,而不是它应该是的模型实例。所以我猜这行有问题吗?:
$translationKey = \App\Translation::select('group', 'key')->where('group',
'global')->where('key', $key)->first();
但是问题是什么?
我有一些错误 - 我需要 select 整行而不是个别列:
$translationKey = \App\Translation::where('group', 'global')
->where('key', 'about_us')
->first();
保存翻译时出现错误。我的 translations_translations table 有一个 "value" 列,所以这有效:
$translationKey->translateOrNew($locale)->value = $value;
$translationKey->save()