我有三个字段
- 标题
- 车身
- 图像[]
身体需要没有图像,所以我做了以下操作:
$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'),
],
]);
}