エラー: Add [xxxx] to fillable property to allow mass assignment on [App\Database\xxx].
Laravelのinsert処理でエラーが起こった時の対応をメモ。
前提
Laravelのバージョン
$ php artisan --version Laravel Framework 5.7.22
事象
やりたかったこと
Laravelの
./app/Database
のModelクラスを継承したクラスを使って、
MySQLへの更新処理(insert)を行う。
エラー
更新処理が行われるタイミングでエラーが発生。
エラー: Add [xxxx] to fillable property to allow mass assignment on [App\Database\xxx].
プログラム
Modelクラスを継承し、createメソッドにて、
MySQLへの追加処理を行おうとしていた。
class TestClass extends Model { : 省略 : public function insertData($request) { $id = (integer)Auth::getUser()->id; $setData = array( 'xxxx' => $request->xxx, 'xxxx' => $id, ); // create メソッドでMySQLへの追加を実施 TestClass::create($setData); } }
解決方法
参考サイト
stackoverflowの以下のページを参考。
ちなみに、内容の該当部分は、
この部分を参考にしてうまくいった。
対応内容
先ほどの、createメソッドで更新処理を行なっているクラスの中に、
protected $fillable = ['xxxx'];
というfillable変数を定義した。
class TestClass extends Model { : 省略 : public function insertData($request) { $id = (integer)Auth::getUser()->id; $setData = array( 'xxxx' => $request->xxx, 'xxxx' => $id, ); // create メソッドでMySQLへの追加を実施 TestClass::create($setData); } }
class TestClass extends Model { // このfillable変数を追加 protected $fillable = ['xxxxxxx']; : 省略 : public function insertData($request) { $id = (integer)Auth::getUser()->id; $setData = array( 'xxxx' => $request->xxx, 'xxxx' => $id, ); // create メソッドでMySQLへの追加を実施 TestClass::create($setData); } }
スキルを使って、就職/転職/副業する時のサイト
プログラミングのスキルなどを、自分なりに高めた上で、
自分のスキルをアピールして就職や転職を行い、年収をあげるか、
副業という形で、年収にプラスアルファの稼ぎを増やすことはできます。
まずはできる範囲で取り組むことで、
少しずつ、経験値も増え、自分のスキルが収入につながるのでおすすめです。