MySQL+Laravel5.2で、店舗を表すテーブル shops と、店舗情報を表す shop_infos があり、shop_info の主キーは shop_id と position(表示順序) の2つから成る複合主キーです。
1つの店舗は複数の店舗情報を持っています。
ShopInfo のモデルは次のように設定されています。
PHP
1class ShopInfo extends Model 2{ 3 public $primaryKey = ['shop_id', 'position']; 4 public $incrementing = false; 5}
保存の際は次のようにしています。
PHP
1$info = new ShopInfo(); 2$info->shop_id = 123; 3$info->position = 1; 4$info->content = "sample"; 5$info->save();
上記は問題なく保存できますが、更新の際にエラーが発生します。
PHP
1$info = ShopInfo::where('shop_id', '=', 123) 2 ->where('position', '=', 1)->first(); 3 4$info->content = "sample2"; 5$info->save();
エラーの内容は
ErrorException in Model.php line 1702:
Illegal offset type in isset or empty
というものです。
dd($info) で内容が存在していることは確認しています。
更新対象のデータがデータベースに存在することも確かです。
一体何が原因なのでしょうか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/07 03:12