我控制器上我有:條件驗證
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