Laravelでstringなどでvalidateをかけるとnullだと怒られてしまう時の対処法

stringでのvalidate

$request->validate([
    'title' => ['string', 'max:50']
]);

上記だと文字列で、50文字以内というバリデーションです。と思いきや、何も入力しないで送信するとstringのバリデーションに引っ掛かってしまう。

‘required’は入れてないのに、なぜ引っ掛かってしまうか?理由はstringで設定した場合、nullは許容していないからだ。それを解決するために以下のようにすればいいです。

$request->validate([
    'title' => ['nullable', 'string', 'max:50']
]);

これでnull許容になりました。

こちらの記事を参照しました。

コメント

タイトルとURLをコピーしました