Laravel 5.5 使用 OR/ELSE 条件验证

Laravel 5.5 Validation with OR/ELSE conditional

我是 laravel 的新手,我想知道是否有办法在 $rules 中使用 or/else 条件,因为我正在努力尝试进行以下验证: 如果字段为 Z,则大小必须为 y,否则为 x。 我试过了,但它总是用 size:11

验证数据
'type   => 'required',
'field' => ['required', ('type == 1' ? 'size:11' : 'size:14')],

有人知道吗?提前致谢

使用Laravel验证器, 参考 Link: https://laravel.com/docs/5.5/validation

 $validatedData = $request->validate([
            'title' => 'required|unique:posts|max:255',
            'body' => 'required',
        ]);

我假设你使用表单请求验证,所以你可以这样做:

$rules = [
   'type' => 'required',
   'field' =>  ['required'];
];

$rules['field'][] = ($this->input('type') == 1) ? 'size:11' : 'size:14';

return $rules;