问题描述
我想验证一个字段,我的字段有时是文件(图像),有时是字符串(同一图像的 src)
解决方法
您的问题的具体细节并不完全清楚,但我认为您可以通过执行以下操作来管理您想要的:
$request->validate([
'stringOrFile' => [
function ($attribute,$value,$fail) {
if (!is_string($value) && !($value instanceof UploadedFile)) {
$fail('The '.$attribute.' must either be a string or file.');
}
}
]
]);
其中 UploadedFile
指的是 \Illuminate\Http\UploadedFile
,而 stringOrFile
指的是您正在验证的输入的名称。
但是,如果可能,请根据输入的内容为输入使用不同的名称,以便您可以对每个不同的输入使用更复杂的验证规则。
有关此类验证规则的更多详细信息in the manual
,我使用此代码示例。参加对您有用的任何部分。
$msg=[
'name.required'=>'<span class="badge">Name</span> is Required','username.required'=>'<span class="badge">User Name</span> is Required','born.required'=>'<span class="badge">User Name</span> is Required'
];
$request->validate([
'name'=>'required|string|min:2|max:30','username'=>'required|string|min:3|max:20','born'=>'required|date','image'=>'nullable|image|mimes:jpg,jpeg,bmp,png'
],$msg);
$msg 错误
您应该创建错误页面刀片名称错误包含
@if($errors->any())
{!! implode('',$errors->all('<div class="alert alert-danger">:message</div>')) !!}
@endif
///
在包含验证表单的刀片中写入顶部代码
@include('error')
如果存在任何错误,则包含错误页面以显示错误