Laravel 条件下的最小字符数(取决于条件)
Laravel minmum characters on condition ( depends on condition )
我有一个场景,即只有存在另一个请求字段时,该字段才应该有 min:5
?不是 required_if
。
比如我有一个产品 return 原因:
如果用户选择原因并想向文本区域(输入)添加一些详细信息,那么我不需要任何最少字符,而如果他选择(其他)原因,我至少需要 5 个字符?
这是我的验证规则:
'item.*.reason' => ['required_if:item.*.selected_reason,other','nullable','min:5','max:3000']
我通过自定义验证做到了这一点
$validator = Validator::make($request->all(), [
'reason' => ['required'], // may be enum
'remarks' => [
function ($attribute, $value, $fail) use($request) {
if ($request->reason === "other" && strlen($value) < 5) {
$fail('Please provide a detailed reason.');
}
},
],
]);
我有一个场景,即只有存在另一个请求字段时,该字段才应该有 min:5
?不是 required_if
。
比如我有一个产品 return 原因:
如果用户选择原因并想向文本区域(输入)添加一些详细信息,那么我不需要任何最少字符,而如果他选择(其他)原因,我至少需要 5 个字符?
这是我的验证规则:
'item.*.reason' => ['required_if:item.*.selected_reason,other','nullable','min:5','max:3000']
我通过自定义验证做到了这一点
$validator = Validator::make($request->all(), [
'reason' => ['required'], // may be enum
'remarks' => [
function ($attribute, $value, $fail) use($request) {
if ($request->reason === "other" && strlen($value) < 5) {
$fail('Please provide a detailed reason.');
}
},
],
]);