1
私はPHP 7とMySQL 5.7を使用しています。属性フィールドは、私のテーブルのjson列として定義されています。Laravel Eloquent Json Column Updating Not Working
モデルファイルにキャストを定義しました。
protected $casts = ['attributes' => 'array'];
データの追加に問題はありません。
Transaction::create([
'name' => $this->name,
'subject_id' => $this->id,
'subject_type' => get_class($this),
'attributes' => ['status' => 0, 'type' => 'owner'],
'user_id' => $owner->id
]);
しかし、私はjsonデータを更新できません。
$transaction = $this->transaction->where('content_key', $this->request->key)->first(); $transaction->update(['attributes->status' => 1]);
または
$transaction->attributes['status'] = 1; $transaction->save();
なしの仕事:私は、これらの方法を試してみました。
これらのメソッドは動作します:
$transaction->update(['attributes'=> ['status' => 1, 'type' => 'owner'] ]);
(私はこの方法ですべてのデータを更新する必要があります)
または
Db::table('transactions')->where('content_key', $this->request->key)->update(['attributes->status' => '1'])
を私は雄弁でこれを行うことができますどのように?
$ transaction-> status = ['status' => 0、 'type' => 'owner']を試しましたか? $ transaction-> save(); ? – Muthu17
私は全く同じ問題を抱えています。私はPostgreSQLデータベースを使用していますが、原則は同じです。なぜそれがうまくいかないのか、本当に欲求不満です。あなたは解決策を見つけましたか? – cartbeforehorse