モデルの新規保存でのエラー
「PHPフレームワーク Laravel入門」のP252のupdateメソッドを書いて実行した際に出たエラーの解決をメモする。
PersonController.php
public function add(Request $request)
{
return view('person.add');
}
public function create(Request $request)
{
$this->validate($request, Person::$rules);
$person = new Person;
$form = $request->all();
unset($form['_token']);
$person->fill($form)->save();
return redirect('./person');
}
フォームを送信すると、
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'updated_at' in 'field list (SQL: insert into `people` (`name`, `mail`, `age`, `updated_at`, `created_at`)(以下省略)
とエラーが発生。調べたところ「updated_atカラム」が無いとのことです。
解決方法はタイムスタンプを無効にすれば良いようです。
PersonController.php
public function add(Request $request)
{
return view('person.add');
}
public function create(Request $request)
{
$this->validate($request, Person::$rules);
$person = new Person;
$form = $request->all();
unset($form['_token']);
$person->timestamps = false; // 追記
$person->fill($form)->save();
return redirect('./person');
}
解決方法として良いのか悪いのかわからないがフォーム送信ができ、レコードが追加できたので良かった。