なぜcreateに、、、?
Howdy!
Miki3(ミキさん)です!
入力フォームのデータをコントローラーからサービス層でDB登録処理を行う際、
サービス層に移行せずルーティングに戻りcreateのルーティングに行ってしまう現象になってしまいました。
とりあえず問題点のあるソースコードをチェック
public function store(Request $request)
{
$data = $request->validate([
'ああああ' => ['required', 'max:4'],
'いいいい' => ['required', 'max:4'],
'ええええ' => ['required', 'max:4'],
'created_at' => ['required'],
'updated_at' => ['required'],
]);
$user->fill($data);
$user->save();
$data = $request->validateの処理から強制的にcreateのルーティングに移ってしまう謎現象、、、
調べてもわからなかったら先輩に!!
調べてもわからなかったので先輩にSOSコールしたところ
【先輩】「created_at,とupdate_atはいらんよ」
瞬殺ですた( ゚д゚)・・・・・。
入力したデータを格納した$requestに、created_at, updated_atは含まれていないので、validateで弾かれているからとのこと。
なので↓
【修正前】
public function store(Request $request)
{
$data = $request->validate([
'ああああ' => ['required', 'max:4'],
'いいいい' => ['required', 'max:4'],
'ええええ' => ['required', 'max:4'],
'created_at' => ['required'],
'updated_at' => ['required'],
]);
$user->fill($data);
$user->save();
【修正後】
public function store(Request $request)
{
$data = $request->validate([
'ああああ' => ['required', 'max:4'],
'いいいい' => ['required', 'max:4'],
'ええええ' => ['required', 'max:4'],
]);
$user->fill($data);
$user->save();
動いてDBの新規登録できました!
確かに入力項目にcreated_at,とupdate_atはいらんよな、、、
前回「created_atにデフォルト値が無いよ」とエラーで怒られたので試しに残っていた履歴が残ってたんですね。
用は消し忘れの凡ミスです、、
次は更新か、、、、
コメント