(更新) laravel-translatable パッケージを使用し、翻訳を含む行を挿入しようとしています。保存しようとすると、「文字列のメンバ関数 save() の呼び出し」というエラーが表示されます。
次のように、キーと値を使用してオブジェクトをループし"food": "Nourriture",
、ループ内で Translations テーブルを選択します。
$translationKey = \App\Translation::select('group', 'key')->where('group',
'global')->where('key', $key)->first();
私はドキュメンテーションとまったく同じではありません。
$translationKey = \App\Translation::where('key', $key)->first();
違いは、列「グループ」と「キー」を選択し、そのグループ = グローバルを指定するために追加の「場所」を実行することです。何か問題がありますか?
次に、既存の翻訳があるかどうかを確認しようとします。そうでない場合は、翻訳を挿入します。
if($translationKey->hasTranslation('fr')) {
continue;
}else{
//insert
$translationRow = $translationKey->translateOrNew('fr')->$key = $value;
$translationRow->save();
}
translate の代わりに translateOrNew を使用します。そうしないと、「空の値からデフォルト オブジェクトを作成しています」というエラーが発生するためです。
->save()
それは文字列であり、本来あるべきモデルインスタンスではないため、メソッドを実行できないようです。だから私はこの行に何か問題があると思いますか?:
$translationKey = \App\Translation::select('group', 'key')->where('group',
'global')->where('key', $key)->first();
しかし、問題は何ですか?