有什么方法可以验证有时是文件(图像)&&有时是字符串(同一图像的源)的字段
is there any way to validate a field that sometime is File(image) && sometime is String(Src of same image)
我的问题:
我正在使用 laravel 框架 php
我想验证一个字段我的字段有时是文件(图像),有时是字符串(同一图像的 src)
Laravel有什么捷径或解决办法吗???
您的问题的具体细节并不十分清楚,但我认为您可以通过执行以下操作来管理您想要的内容:
$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 错误
您应该创建错误页面 blade 名称 错误 包含
@if($errors->any())
{!! implode('', $errors->all('<div class="alert alert-danger">:message</div>')) !!}
@endif
///
在 blade 中包含用于验证的表单写入顶部代码
@include('error')
如果存在任何错误显示错误,请包含错误页面
实际上,在使用表单数据时,空图像作为字符串“null”接收。你可以在你的控制器中管理它。
$request->request->add(['image' => $request->image== "null" ? null : $request->image]);
$request->validate(['image'=> nullable|sometimes|image|mimes:jpeg,png,jpg,svg])
或者您可以发送空字符串以防未附加图片。
我的问题: 我正在使用 laravel 框架 php
我想验证一个字段我的字段有时是文件(图像),有时是字符串(同一图像的 src)
Laravel有什么捷径或解决办法吗???
您的问题的具体细节并不十分清楚,但我认为您可以通过执行以下操作来管理您想要的内容:
$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 错误
您应该创建错误页面 blade 名称 错误 包含
@if($errors->any())
{!! implode('', $errors->all('<div class="alert alert-danger">:message</div>')) !!}
@endif
///
在 blade 中包含用于验证的表单写入顶部代码
@include('error')
如果存在任何错误显示错误,请包含错误页面
实际上,在使用表单数据时,空图像作为字符串“null”接收。你可以在你的控制器中管理它。
$request->request->add(['image' => $request->image== "null" ? null : $request->image]);
$request->validate(['image'=> nullable|sometimes|image|mimes:jpeg,png,jpg,svg])
或者您可以发送空字符串以防未附加图片。