我有以下表单输入,这是必填字段。
{!! Form::text('email_local_part', old('email_local_part') ? old('email_local_part') : strstr(Auth::user()->email, '@', true), ['class' => 'form-control']) !!}
在页面加载时,我想设置一个默认值。但是,如果用户在未输入任何值的情况下提交,即删除默认值,则在表单验证时重新显示表单时,我将返回默认值。
由于ConvertEmptyStringsToNull中间件,这种情况正在发生。当我评论这个中间件时,默认值的行为是预期的。
如何在不禁用ConvertEmptyStringsToNull中间件的情况下修复,因为它需要将空值插入可空的mysql外键列中。
任何帮助表示赞赏。
答案 0 :(得分:1)
如果使用old()辅助函数的默认值参数,则该参数有效,例如:
.form-control.is-invalid
{
background-image: none
}
您甚至可以使用Null合并运算符(PHP7 +)添加模型数据,或者如果不存在默认数据,则添加默认数据:
{!! Form::text('email_local_part', old('email_local_part', strstr(Auth::user()->email, '@', true)), ['class' => 'form-control']) !!}
这适用于评估和模型数据,也适用于空的旧输入和“新”的ConvertEmptyStringsToNull中间件。