【问题标题】:Laravel 5.x. Throwing Manual error from form validationsLaravel 5.x。从表单验证中抛出手动错误
【发布时间】:2017-10-09 06:38:36
【问题描述】:

有没有办法在 laravel 中引发手动表单验证错误。假设有一个功能可以检查信用卡号码,如果失败,我想设置一个错误并将用户重定向回表单。我正在寻找类似的东西。

private function validateCreditCard() {...}
if (!validateCreditCard()) {
    # Throw a form validation error here.
}

【问题讨论】:

    标签: php forms laravel validation laravel-5


    【解决方案1】:

    其实在 Laravel 中有很多种验证方式。

    1. 来自控制器

    Validator::make($request->all(), [
            'ccv' => 'required|numeric|max:3',
            'card_number' => 'required',
         'expiry_date' => 'required',
     ])->validate();
    1. 在代码中明确指定要将请求重定向到的位置

     $validator = Validator::make($request->all(), [
                'ccv' => 'required|numeric',
                'card_number' => 'required',
                 'expiry_date' => 'required',
    
                
            ]);
    
            if ($validator->fails()) {
                return redirect('pay/with/creditcard')
                            ->withErrors($validator)
                            ->withInput();
            }
    1. 在第一次验证后进行另一次验证,例如(检查卡是否可借记)

    $validator = Validator::make(
                    'ccv' => 'required|numeric',
                    'card_number' => 'required',
                     'expiry_date' => 'required',); //your normal validation here. e.g  ccv, required fields etc.
        
        $validator->after(function ($validator) {
            if (!$this->validateCreditCard()) { //do another validation e.g check if card is debitable
            
                $validator->errors()->add('credit_card', 'Something is wrong with this credit card!');
            }
        });

    您可以重定向回付款表单。假设您的路线是'pay/with/creditcard'

    if ($validator->fails()) {
                return redirect('pay/with/creditcard')
                            ->withErrors($validator)
                            ->withInput();
            }
    

    【讨论】:

    • 是的,你可以在控制器中运行它
    • 谢谢。这真的很有帮助。
    猜你喜欢
    • 2018-04-23
    • 2016-02-15
    • 2014-08-21
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2016-02-05
    相关资源
    最近更新 更多