我有一个 Laravel 5.3 应用程序和一个更新表单,用于发送用户配置文件值。其中之一也是用户图像,我正在为它创建一个隐藏的输入字段,所以如果用户没有上传任何新图像,我仍然可以看到他有带有旧图像值的隐藏字段。
<input type="hidden" class="form-control" name="old_image" value="{{ $player->image_filename }}" id="oldImage">
如果他移除图像,隐藏的输入值将变为空。
document.getElementById('oldImage').value = '';
这就是我想到更新用户图像的方式。但我不知道如何为该表单设置验证规则。与此类似的东西:
public function rules()
{
return [
'first_name' => 'required|max:50',
'last_name' => 'required|max:50',
'birthday' => 'required',
'image' => required if old_image empty
];
}
我已经尝试过 'image' => 'required_without:old_image',
以及 'image' => 'required_if:old_image, null',
但它们都没有显示任何丢失图像的错误消息。我正在显示如下错误消息:
原文由 Ludwig 发布,翻译遵循 CC BY-SA 4.0 许可协议
我知道这是一个老问题,但我在搜索过程中遇到了它。所以我也会在这里为未来的访问者发布我的解决方案。
我认为这个解决方案是 OP 想要的。该解决方案不使用其他包或自定义验证方法,因此 imo 也是一个优点。
我所做的是这样的: