ピックアップ
エラー: 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);
}
}
おすすめ書籍
コメント一覧
コメントはまだありません。




コメントを残す