我正在验证信用卡,为此创建了两个表单请求:
php工匠制造:请求StoreAmexRequest php工匠制造:请求StoreVisaRequest
如何在同一个控制器中使用它们?
public function store(Request $request)
{
if ($request->credit_card['number'][0] == 3) {
new StoreAmexRequest(),
}
if ($request->credit_card['number'][0] == 4) {
new StoreVisaRequest(),
]);
}}
我的代码不起作用,$request变量不接收它StoreAmexRequest()
我正在做一个信用卡验证器,美国运通卡验证器是不同于VISA卡,因为美国运通是15位数和CVV是4位数,在VISA是16位数。
有必要使用php artisan make:request,因为它是用于以JSON格式返回响应的API
\app\Http\请求\美国运通商店请求
public function authorize()
{
return true;
}
public function rules()
{
$year = date('Y');
return [
'credit_card.name' => ['required', 'min:3'],
'credit_card.number' => ['bail', 'required', 'min:15', 'max:16', new CredirCardRule],
'credit_card.expiration_month' => ['required', 'digits:2'],
'credit_card.expiration_year' => ['required', 'integer', 'digits:4', "min:$year"],
'credit_card.cvv' => ['required', 'integer', 'digits_between:3,4']
];
}
public function failedValidation(Validator $validator)
{
throw new HttpResponseException(response()->json([
$validator->errors(),
]));
}
1条答案
按热度按时间9avjhtql1#
您可以只使用一个表单请求来验证两者。
并拆分表单请求中的规则