我有一个属性表,一个属性表。单击“保存”时,我将存储featured_image属性以及与插入的属性相关的照片表中的多个图像:
$messages = [
'path.*required|max:200' => 'Each image should not exceed 200 Kilobytes',
];
$this->validate($request, [
'path.*' => 'required|max:200',
'featured_image' => 'required|max:300',
], $messages);
if($request->hasFile('path')){
foreach ($request->path as $photo) {
$photoname = $photo->getClientOriginalName();
$photo->move('images', $photoname);
$photoModel = new Photo;
$photoModel->path = $photoname;
$photoModel->property_id = $prop->id;
$photoModel->save();
}
}
我的问题是在验证中。如果我上传的特色图片($ request-> featured_image)大于400 KB,则会出现错误。但是,当我上传多张图片时,针对这些图片的验证无效。我设法上传了一个6MB的图片!
我需要进行验证吗?
此外,我的自定义消息不会显示。
答案 0 :(得分:1)
在您的validate
方法中,您将针对单个图像进行验证,因此,当您上传多个图像时,这将不再起作用,因为它不再是一个图像,而是一个数组。在这种情况下,您需要在属性名称后使用通配符,例如:'featured_image.*'
,因为它实际上引用了发送的任意数量的图像,并且此验证规则主要用于multiple
文件上传>
编辑:要将所有图像的最大尺寸设置为2mb
,可以使用:max:5
,因为2048 / 400 = 5.12
编辑2:对于自定义消息,请检查我在评论中提供的网址,然后向下滚动一点,您将看到如何display error messages
,或者如果它不在该部分的下方,则只需搜索{{1} },您将看到如何指导