2016-12-10 50 views
0

我有兩個不同的路線:Misredirect在laravel驗證

Route::post('contact', '[email protected]'); 
Route::post('inquiry', [ 'as' => 'inquiry', 'uses' => '[email protected]']); 

及其方法:

public function postContact(Request $request){ 

    $token = $request->input('g-recaptcha-response'); 
    if (strlen($token) >0) { 
     $this->validate($request, [ 
     'fname' => 'required', 
     'lname' => 'required', 
     'phone' => 'required',   
     'email' => 'required|email', 
     'subject' => 'min:3', 
     'message' => 'min:10']); 

    $data = array(
     'fname' => $request->fname, 
     'lname' => $request->lname, 
     'phone' => $request->phone, 
     'email' => $request->email, 
     'subject' => $request->subject, 
     'bodyMessage' => $request->message 
     ); 

    Mail::send('emails.contact', $data, function($message) use ($data){ 
     $message->from($data['email']); 
     $message->to('[email protected]'); 
     $message->subject($data['subject']); 
    }); 

    Session::flash('success', 'Your Email was sent sucessfully!'); 

    return redirect('/contact'); 
    } 
} 

和:

public function postInquiry(Request $request){ 
    $token = $request->input('g-recaptcha-response'); 
    if (strlen($token) >0){ 
     $this->validate($request, [ 
     'fname' => 'required', 
     'lname' => 'required', 
     'phone' => 'required', 
     'country' => 'required',    
     'email' => 'required|email', 
     'subject' => 'min:3', 
     'message' => 'min:10']); 
    $data = array(
     'fname' => $request->fname, 
     'lname' => $request->lname, 
     'phone' => $request->phone, 
     'country' => $request->country, 
     'email' => $request->email, 
     'subject' => $request->subject, 
     'bodyMessage' => $request->message 
     ); 

    Mail::send('emails.inquiry', $data, function($message) use ($data){ 
     $message->from($data['email']); 
     $message->to('[email protected]'); 
     $message->subject($data['subject']); 
    }); 

    Session::flash('success', 'Your Email was sent sucessfully!');   

     return view('public.pages.thankyou'); 
    }   
} 

我遇到的麻煩是第二方法不能正常工作。查詢表單在視圖(single.blade.php)中。在sumbitting後,表單用戶應該被重定向到查看(thankyou.blade.php)視圖,但它會重定向到查看(single.blade.php)而不發送電子郵件,並且不會顯示任何錯誤。

如果我刪除驗證部分:

$this->validate($request, [ 
    'fname' => 'required', 
    'lname' => 'required', 
    'phone' => 'required', 
    'country' => 'required',    
    'email' => 'required|email', 
    'subject' => 'min:3', 
    'message' => 'min:10' 
]); 

從postInquiry它完美的第二個方法(發送電子郵件和重定向做thankyou.blade.php)

誰能告訴我,我有什麼錯在這裏做?

回答