如何使用请求 class 来验证
How to use a Request class to validate
如何在没有依赖注入的情况下验证请求?
我需要在同一个帖子中验证两个不同的东西。例如,我需要 运行 对条目进行基本验证,但我还需要验证信用卡信息,付款方式可能会更改,这就是为什么我不在基本条目请求中添加信用卡数据的原因.
在我的方法中我有:
public method create (EntryRequest $request) {
Validator::make($request->all(),
[rules]
}
但我已经在 CreditCardRequest
中制定了我的规则。我如何将规则应用于该请求?
Like Validator::make($request->all(), new CreditCardRequest())
我相信你是这个意思!
您包含自己的 StoreRequest 文件,并像这样使用它进行验证。
use App\Http\Requests\CreditCardRequest;
public function store(CreditCardRequest $request)
{
$data = $request->validated();
}
您可以在表单请求中进行条件验证类。因此,如果您只想在 payment_method
为 card
时验证信用卡字段,那么您可以这样做:
class StorePaymentRequest extends FormRequest
{
public function rules()
{
return [
'payment_method' => ['required', 'in:card,paypal'],
// Any other basic rules for the request
];
}
public function withValidator($validator)
{
// Conditionally add validation for card fields if payment method is card
$cardFields = ['card_number', 'expiry_date', 'cvc'];
$validator->sometimes($cardFields, 'required', function ($input) {
return $input->payment_method == 'card';
});
}
}
文档:https://laravel.com/docs/5.8/validation#conditionally-adding-rules
如何在没有依赖注入的情况下验证请求?
我需要在同一个帖子中验证两个不同的东西。例如,我需要 运行 对条目进行基本验证,但我还需要验证信用卡信息,付款方式可能会更改,这就是为什么我不在基本条目请求中添加信用卡数据的原因.
在我的方法中我有:
public method create (EntryRequest $request) {
Validator::make($request->all(),
[rules]
}
但我已经在 CreditCardRequest
中制定了我的规则。我如何将规则应用于该请求?
Like Validator::make($request->all(), new CreditCardRequest())
我相信你是这个意思! 您包含自己的 StoreRequest 文件,并像这样使用它进行验证。
use App\Http\Requests\CreditCardRequest;
public function store(CreditCardRequest $request)
{
$data = $request->validated();
}
您可以在表单请求中进行条件验证类。因此,如果您只想在 payment_method
为 card
时验证信用卡字段,那么您可以这样做:
class StorePaymentRequest extends FormRequest
{
public function rules()
{
return [
'payment_method' => ['required', 'in:card,paypal'],
// Any other basic rules for the request
];
}
public function withValidator($validator)
{
// Conditionally add validation for card fields if payment method is card
$cardFields = ['card_number', 'expiry_date', 'cvc'];
$validator->sometimes($cardFields, 'required', function ($input) {
return $input->payment_method == 'card';
});
}
}
文档:https://laravel.com/docs/5.8/validation#conditionally-adding-rules