Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel-ConvertEmptyStringsToull会扰乱默认值行为吗?_Php_Mysql_Laravel_Laravel 5.3 - Fatal编程技术网

Php Laravel-ConvertEmptyStringsToull会扰乱默认值行为吗?

Php Laravel-ConvertEmptyStringsToull会扰乱默认值行为吗?,php,mysql,laravel,laravel-5.3,Php,Mysql,Laravel,Laravel 5.3,我有以下表单输入,这是必填字段 {!! Form::text('email_local_part', old('email_local_part') ? old('email_local_part') : strstr(Auth::user()->email, '@', true), ['class' => 'form-control']) !!} 在页面加载时,我想设置一个默认值。但是,如果用户提交时未输入任何值,即删除默认值,则在表单验证后,当表单重新显示时,我将返回默认值 这

我有以下表单输入,这是必填字段

{!! Form::text('email_local_part', old('email_local_part') ? old('email_local_part') : strstr(Auth::user()->email, '@', true), ['class' => 'form-control']) !!}
在页面加载时,我想设置一个默认值。但是,如果用户提交时未输入任何值,即删除默认值,则在表单验证后,当表单重新显示时,我将返回默认值

这是因为ConvertEmptyStringsToull中间件。当我注释掉这个中间件时,缺省值的行为与预期的一样

如何在不禁用ConvertEmptyStringsToull中间件的情况下进行修复,因为它需要将空值插入到可空的mysql外键列中

谢谢你的帮助

如果使用old()帮助器的默认值参数,它将起作用,例如:

{!!Form::text('email_local_part',old('email_local_part',strstr(Auth::user()->email,@',true)),['class'=>'Form control'])
您甚至可以使用空合并运算符(PHP7+)添加模型数据,如果模型数据不存在,则可以使用默认值:

old('attribute',$model->attribute???'default value')
这适用于valdations和模型数据,也适用于空的旧输入和“新”ConvertEmptyStringsToull中间件