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中间件