我控制器上我有:条件验证
public function store(ProductRequest $request)
请求:
class ProductRequest extends Request
{
public function rules()
{
return [
'name' => 'required|min:3',
'perTypeTime' => 'sometimes|required',
'per_type_id' => 'required'
];
}
}
我想改变上述perTypeTime规则取决于如果per_type_id场是有条件的== 1.
如果我在控制器中启动验证程序,我相信我可以执行以下操作:
$v = Validator::make($data, [
'per_type_id' => 'required|email'
]);
$v->sometimes('perTypeTime', 'required|max:500', function($input)
{
return $input->per_type_id == 1;
});
有没有办法做到这一点,同时保持我的自定义请求。我喜欢这种方法如何保持控制器清洁。
我似乎无法访问请求对象上的验证器。有没有一种方法可以在请求本身内指定这个条件,或者从请求对象访问验证器,或者有另一种方法吗?
这种方法是罚款这一特定使用案例,但它并没有解决的根源问题:如果我有一个非常特殊的验证,比如'userIsAGoat()',那么该怎么办? – Noir