2017-10-09 99 views
0

是否有任何方法在laravel中引發手動表單驗證錯誤?假設有一個函數可以檢查信用卡號碼,如果失敗,我想設置一個錯誤並將用戶重定向回表單。我正在尋找類似的東西。Laravel 5.x.從表單驗證中拋出手動錯誤

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

回答

0

在Laravel中實際上有許多驗證方法。

  1. 來自控制器

Validator::make($request->all(), [ 
 
     'ccv' => 'required|numeric|max:3', 
 
     'card_number' => 'required', 
 
    'expiry_date' => 'required', 
 
])->validate();

  • 指定要在代碼中顯式地重定向請求
  • $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(); 
     
         }

  • 做的第一驗證例如接連驗證(檢查卡debitable)
  • $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(); 
         } 
    
    +0

    我可以在控制器本身內部運行它嗎? –

    +0

    是的,你可以在控制器中運行它 –

    +0

    謝謝。這真的很有幫助。 –