最近は軽量PHPフレームワークのLumenを使っています。
(※バージョンはたぶん5.2。確認の仕方が分からない...)
最近もっぱらPHP界隈を賑わしているLaravelから派生したフレームワークで、
機能が少ない分、軽量で処理速度も速いそうです。
LaravelもLumenもデータベースモデルはEloquentという機能を使って開発することができ、僕もそれを使っています。
で、データを更新するために
$userObject->update(["name"=>"山田さん", "age"=>30]);のように実装すると、
MassAssignmentExceptionが発生し小一時間ハマりました。
この場合は、その該当のモデルクラスに
// 変更可能なカラム名 protected $fillable = ["name", "age", "その他カラム名"]; // または変更不可能なカラム名 protected $guarded = ["id", "create_at"];
のどちらか(または両方)を記述すればOKです。
ただ、上記の変数を指定しなくてもupdate()メソッドが使える場合もあり、
その理由は未だ不明です...。
ちなみに、insert()またはsave()メソッドでは上記の例外の発生は未確認です。
以上でぇぇぇぇす!
0 件のコメント:
コメントを投稿