Laravelでリクエストの空文字列を送るとnullになって「NULL は許可されていない」というエラーになります。
こちらを回避するにはemptyを使い再度コントローラー側で空文字列を入れる方法で回避することは出来ますが、そのままnullにせずに空文字列でリクエストを送ることは出来ないでしょうか?
また、「\app\Http\Kernel.php」の以下の部分をコメントアウトすることで、そのまま空文字で送信できるようですが、コメントアウトしても問題ないでしょうか?
回答よろしくお願いします。
php
1- \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
追記
Laravel のマイグレーションのデフォルトでnullable()をつけていないのでnullはエラーになります。
何もせずに勝手にNULLを許可しないようになるとは思えません。
再現可能な情報を全てご提示ください。
いえ、再現可能な情報というよりLaravel5.4以降、上にも書いてあるのですがKernel.php でnullになるような設定になってるので、申し訳ないですが情報の修正、追記は必要ないと思うのですが
https://mseeeen.msen.jp/laravel-5-4-trouble-with-convertemptystringstonull-middleware/
> 「NULL は許可されていない」
このエラーはどのタイミングで発生するのでしょうか?もしDB保存の際に発生するなら、nullの代わりに空文字を保存してしまって解決となるのかの検討が必要なように思います。
ありがとうございます。
DB保存時ですね。
現在はemptyで判断して空文字列を再度入れなおしてエラーを回避していますが複数、ある場合だと何度も空文字を入れなければならないため効率が良くない気がしています。
でしたらおかしいですね。
>リクエストの空文字列を送るとnullになって
とあるのでリクエスト時にnullダメになっているという印象を受けます(だから私は確認しました)
質問編集して追記してください。
勘違いしていました、申し訳ありません。
Laravel のマイグレーションのデフォルトではnullableをつけないとエラーになるのは当然かと思ってました。追記しますね
質問者的にはコメントアウトしたいけど、Laravelが正常動作してくれるか心配だっていう質問なの?
はい、そうです。
回答2件
あなたの回答
tips
プレビュー