我有一个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',
,但没有一个显示任何错误信息丢失的图像。我显示的错误消息如下所示:
8条答案
按热度按时间7vux5j2d1#
你可以用两个规则来工作
字符串
或者:
型
9rbhqvlz2#
这可以通过
required_without
规则来完成,如果它不起作用,请显示实际的示例请求数据(dd(request()->all() )
)和您正在使用的验证规则。您要捕获场景很简单:如果两个字段都为空。在示例中,应用此规则应该有效:
字符串
required_without:foo,bar,...
只有当任何其他指定字段不存在时,验证下的字段才必须存在且不为空。Validation - Laravel 5.3
示例如下:
型
py49o6xq3#
对于新的laravel版本,如果需要使用required_if,它至少需要两个参数,所以应该使用第二个和第三个参数作为if条件。
字符串
idv4meu84#
用这个
字符串
tvmytwxo5#
我知道这是一个老问题,但我偶然发现它在我的搜索。因此,我将在这里张贴我的解决方案,以及为未来的访客。
我认为这个解决方案是OP想要的。这个解决方案没有使用其他包或自定义验证方法,所以这也是一个优点。
我是这样做的:
字符串
dzjeubhm6#
您缺少可空验证
字符串
vfh0ocws7#
试试这个
字符串
nom7f22z8#
字符串