フォームの値が空白のとき、Laravelで受け取った値がnullになる問題

投稿者: | 2018/12/28

結構はまったのでメモ。
フォームでリクエストした値が空白の場合、LaravelのRequestで受け取るとなぜかnullになってしまう件。
場合によってはどこかでエラーになる(なった)。

結論から言うとミドルウェアのConvertEmptyStringsToNullクラスが原因です。
app\Http\Kernel.phpのグローバルに適用されるミドルウェアのところにあると思います。
(\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class)
これをコメントアウトすれば解決です。

ただいきなり消すと他で不具合にもなりかねないのでかなり出来上がったあとでは消さない方が良いかも。
その場合の対応方法としては問題となるリクエストだけこのミドルウェアを適用しないルートを作ってやる必要があります。
調べたところ特定のミドルウェアだけ適用しない、といったことはできないようです。


コメントを残す

メールアドレスが公開されることはありません。