我正在 Laravel 5.4 中的一个项目上工作,我想对两个可选字段执行“存在”验证规则(仅当提供值时)。
我已经尝试过以下方法:
// Define validation rules
$validator = Validator::make($request->all(), [
'user_group_id' => 'sometimes|exists:groups,id',
'user_organisation_id' => 'sometimes|exists:organisations,id',
// my other required fields here...
]);
// Validate store request
if ($validator->fails())
return redirect()
->back()
->withErrors($validator)
->withInput();
在我的应用程序中,用户并不总是属于一个组或一个组织。因此,当我在没有选择团体/组织的情况下提交表单时,我预计验证不会执行,但事实却是 - 我收到以下错误:
The selected user group id is invalid.
The selected user organisation id is invalid.
如何仅在提供值时应用“存在”验证规则?使用“有时”标志似乎不起作用。
我尝试了类似的方法,它似乎有效:
// Define validation rules
if (!empty($request->user_group)) $rules['user_group'] = 'exists:groups,id';
if (!empty($request->user_organisation)) $rules['user_organisation'] = 'exists:organisations,id';
$rules = [
// normal required field validations here
];
$validator = Validator::make($request->all(), $rules);
这是实现条件验证的唯一方法吗?