Laravel 5.x.从表单验证中抛出手动错误

时间:2017-10-09 06:38:37

标签: php forms laravel validation laravel-5

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

<!--HTML-->
<link href="http://netdna.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
 <div class="container">
    <div class="row">
        <div class="col-md-4 block">
            <div class="circle">
                <p>Some Text here Some text here</p>
            </div>
        </div>
        <div class="col-md-4 block">
            <div class="circle">
                <p>Some Text here</p>
            </div>
        </div>
        <div class="col-md-4 block">
            <div class="circle">
                <p>Some More Text here</p>
            </div>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

在Laravel中实际上有很多方法可以验证。

  1. 来自Controller
  2. &#13;
    &#13;
    Validator::make($request->all(), [
            'ccv' => 'required|numeric|max:3',
            'card_number' => 'required',
         'expiry_date' => 'required',
     ])->validate();
    &#13;
    &#13;
    &#13;

    1. 在代码中明确指定要将请求重定向到哪里
    2. &#13;
      &#13;
       $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();
              }
      &#13;
      &#13;
      &#13;

      1. 在第一次验证后再做一次验证,例如(检查卡是否可以扣除)
      2. &#13;
        &#13;
        $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!');
                }
            });
        &#13;
        &#13;
        &#13;

        您可以重定向回付款表单。我们假设您的路线是&#39; pay/with/creditcard&#39;

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