Laravel 验证:当不需要字段时排除尺寸检查
Laravel validation: exclude size check when field not required
我在 Laravel 应用程序中进行了验证,但我似乎无法使其正常工作。
我正在对 Supplier
模型进行验证,而不是请求。
public function requestOpening(Supplier $supplier)
{
$validator = Validator::make($supplier->toArray(), $this->fullValidationRules());
if ($validator->fails()) {
return redirect("open-new/supplier/{$supplier->id}")
->withErrors($validator);
}
// ...
}
我希望仅在 is_hfm == 1
时需要 hfm_code
。我都试过了:
'hfm_code' => 'size:6|exclude_if:is_hfm,0',
和
'hfm_code' => 'size:6|required_if:is_hfm,1',
在这两种情况下我都收到验证错误:
The hfm code must be 6 characters.
如何在 is_hfm == 0
时忽略尺寸检查?
这里的顺序似乎很重要:
'hfm_code' => 'exclude_if:is_hfm,0|size:6'
应该可以。我 认为 这是因为它按顺序评估规则,如果 exclude_if
通过
将忽略剩余的规则
我在 Laravel 应用程序中进行了验证,但我似乎无法使其正常工作。
我正在对 Supplier
模型进行验证,而不是请求。
public function requestOpening(Supplier $supplier)
{
$validator = Validator::make($supplier->toArray(), $this->fullValidationRules());
if ($validator->fails()) {
return redirect("open-new/supplier/{$supplier->id}")
->withErrors($validator);
}
// ...
}
我希望仅在 is_hfm == 1
时需要 hfm_code
。我都试过了:
'hfm_code' => 'size:6|exclude_if:is_hfm,0',
和
'hfm_code' => 'size:6|required_if:is_hfm,1',
在这两种情况下我都收到验证错误:
The hfm code must be 6 characters.
如何在 is_hfm == 0
时忽略尺寸检查?
这里的顺序似乎很重要:
'hfm_code' => 'exclude_if:is_hfm,0|size:6'
应该可以。我 认为 这是因为它按顺序评估规则,如果 exclude_if
通过