2017-08-08 138 views
1

我已经将Laravel从5.3升级到5.4版本,但是,如果我在提交表单时在文本输入中有空值,我现在有一个NULL价值而不是空的价格,而这在5.3版本中并未发生。从Laravel 5.3升级到Laravel 5.4并将空字段转换为NULL

我现在已经强制设置一个可为空或需要的验证规则,我该如何解决这个问题?

+0

请阅读[我可以询问什么主题](http://stackoverflow.com/help/on-topic)和[需要避免什么主题](https://stackoverflow.com/help/dont - 问题)和[如何问一个好问题](http://stackoverflow.com/help/how-to-ask)以及如何创建[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)以及[take the tour](http://stackoverflow.com/tour) –

回答

0

在Laravel 5.4中,有一个中间件TrimStrings,它修剪所有空值。

您可以从app/Http/Kernel.php禁用它。

只需从中间件阵列中删除\App\Http\Middleware\TrimStrings::class,即可。

1

在Laravel 5.4中,包含TrimStringsConvertEmptyStringsToNull两个新的中间件。

实际上,对于每个表单请求,Laravel都会自动修剪任何空白区域,同时将所有空请求字段转换为空。

如果你想禁用这些,然后简单地在你的app/Http/Kernel.php评论。

protected $middleware = [ 
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 
    \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, 
    // \App\Http\Middleware\TrimStrings::class, 
    // \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, 
];