BeginnerEngineerBlog
中の人
中の人

【laravel validator】エラーメッセージが消えちゃう

公開: 2023-08-19 13:18
更新: 2023-08-19 13:59
257
laravel validator validate 不具合
最近validatorクラスのvalidate関数でエラーメッセージが消えちゃう現象があったので紹介します

こんにちは!

中の人です

最近validatorクラスのvalidate関数でリダイレクトした後、エラーメッセージが消えるという不具合?を見つけたので紹介します

どういうこと?


use Illuminate\Support\Facades\Validator;

        $validator = Validator::make($request->all(), [
            'title' => [
                'required',
                'string',
                'max:25',
            ],
            'content' => [
                'required',
                'string',
                'max:4000',
            ],
            'tag' => [
                'nullable',
                'string',
            ],
        ]);
        $validator->validate(); // 👈 これ

よくあるバリデーションの処理ですが、この

        $validator->validate();

これでリダイレクトして直前の画面に遷移した際に、エラーメッセージがなくなるということです。

多分同じ現象に遭遇した方のQ&A:

上記の内容だとcookieがどーのこーのということで、よくわからなかったのですが、投げる値が多かったりすると発生する?みたいな感じ?でした。


解決方法


            if ($validator->fails()) {
                return redirect()
                    ->back()// 👈 直前の画面へ
                    ->withInput()// 👈 投げた値の保持
                    ->withErrors($validator);// 👈 エラーメッセージの保持
            }

こうすると不具合は解消されました。

ちなみにこの不具合を発見したlaravelのバージョンは8.xです

なので最新のバージョンでも発生するかもです。

頭の片隅に置いておくといいかもです。


終わりに


確かにこの不具合出た時のフォームの数多かったからなー

ということで

おすー(゚∀゚ )
0
0
0
0
通信エラーが発生しました。
【広告】
似たような記事