強制的にルーティングがcreateに行ってしまう現象が発生(なんで?)

PHP

なぜ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にデフォルト値が無いよ」とエラーで怒られたので試しに残っていた履歴が残ってたんですね。
用は消し忘れの凡ミスです、、

次は更新か、、、、

コメント