需要Laravel 8验证,无需



我有三个字段

  • 标题
  • 车身
  • 图像[]

身体需要没有图像,所以我做了以下操作:

$request->validate([
'title' => 'required|string|max:' . (int) Setting::getValue('titlemaxchars'),
'body'  => [
'required_without:images',
'string',
'min:'.(int) Setting::getValue('postminchars'),
'max:'.(int) Setting::getValue('postmaxchars'),
],
]);
if ($request->hasFile('images')) {
foreach ($request->file('images') as $file) {
Validator::validate(['photo' => $file], [
'photo' => ['required', 'file', 'image', 'max:2048'],
]);
}
}

问题在于以下方面:

  • body.string
  • body.min
  • body.max

如果有图像,我不希望他们发出任何错误消息,并且只有在没有图像的情况下才会出现错误消息。

这对我有用!

$request->validate([
'title' => 'required|string|max:' . (int) Setting::getValue('titlemaxchars'),
]);
if(!empty($request->hasFile('images'))){
$request->validate([
'body'  => 'nullable',
]);
}else{
$request->validate([
'body'  => [
'required',
'string',
'min:'.(int) Setting::getValue('postminchars'),
'max:'.(int) Setting::getValue('postmaxchars'),
],
]);
}

相关内容

  • 没有找到相关文章

最新更新