私のデータベースには、device_idとdevice_tokenの2つの固有のキーを持つテーブル "app_sessions"があります。このテーブルに新しいセッションを挿入したいのは、device_idまたはdevice_tokenのレコードが存在しない場合のみです。それ以外の場合は、このレコードのセッションを更新してください。laravel 5.0での重複キー更新について†
"insert .... on duplicate key update ....."というクエリでこれを行うことができます。しかし、どうすればlaravel 5.0の雄弁を使ってこれを達成できますか?
注:最初にレコードを取得してから、結果に応じて挿入または更新するなど、他の方法もあります。
私はこのエラーがあります:Model.php行のMassAssignmentException 452: device_token。この関数を使用したとき、私はdevice_idを同じだが異なるdevice_tokenに保った。しかし、updateOrCreate関数はandとconditionの両方の列(device_idとdevice_token)をチェックします。ジェフ、あなたは私の質問をしていますか? – janardhan
配列で更新できるようにするには、モデルの '$ fillable'配列に' device_token'を入れる必要があります。最初の配列は、すでに存在する場合にチェックしたい条件で、2番目の配列は更新したい条件でなければなりません。 – Jeff
しかし、2つの条件がある場合、これは機能しません。ここで、 'device_id'が存在するかどうかを確認する必要があります。** OR **' device_token'が存在します。しかし、 'updateOrCreate'関数は' and condition'だけを受け入れます。 – janardhan