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.');
            }
        },
    ],
]);