2017-06-05 111 views
0

我在VerifyCsrfToken.php線53獲得TokenMismatchException: 我使用{!!Form::open()!!} {!!Form::close!!}。當我第一次點擊我的表單中帶有空字段的添加按鈕時,它會向我顯示錯誤,因爲我設置了驗證規則。但是,當我再次單擊添加按鈕而不刷新頁面時,它會顯示TokenMismatchException錯誤。我已經使用dd(選中),它顯示了我這樣的標記:在Laravel 5.1入門TokenMismatchException在VerifyCsrfToken.php線53,而使用CSRF令牌

array:3 [▼ 
"_token" => "5dXwRHbz4GNY1tx9OVeWPcOkirVIm0YtpkZufFbr" 
"menu_name" => "" 
"menu_price" => "" 

這裏是我的表單代碼:

{!! Form::open(array('route' =>'upcoming.store', 'method'=>'POST')) !!} 
        <div class="col-lg-6 col-sm-offset-3 top-spacing"> 
         <input type="text" name="menu_name" placeholder="Menu Name.." class="form-control"> 
        </div> 
        <div class="col-lg-6 col-sm-offset-3 top-spacing"> 
         <input type="text" name="menu_price" placeholder="Menu Price.." class="form-control"> 
        </div> 

        <div class="col-sm-2 col-sm-offset-8 top-spacing"> 
         <button class="btn btn-success"> 
          Add + 
         </button> 
        </div> 

       </div> 
       {!! Form::close() !!} 

這裏是我的控制器,存儲功能:

public function store(Request $request) 
{ 
    dd($request->all()); 
    $this->validate($request, array(
     'menu_name'=>'required', 
     'menu_price'=>'required', 
     )); 
    $upcoming = new Upcomingfood; 
    $upcoming->menu_name=$request->menu_name; 
    $upcoming->menu_price=$request->menu_price; 
    $upcoming->save(); 
    Session::flash('success','Food Menu Added Successfullly'); 
    return redirect()->back(); 
} 

誰能幫忙?

+0

你可以在你的場景中用'route('coming_food/create')'或'view('coming_food/create')'替換'redirect() - > back()'嗎?組成路線名稱和視圖名稱。 – dbr

+0

也加入'withInput()'改變什麼? https://laravel.com/docs/5.4/redirectcts#creating-redirects – dbr

+0

仍然沒有解決方案:-( – Fokrule

回答

-1

嘗試在表單中添加

 {{ csrf_field() }}

我真的建議你閱讀官方文檔https://laravel.com/docs/5.4/csrf

+0

爲什麼我應該使用'{{csrf_field()}}'而我正在使用'Form :: open&close' 。並且它也是用dd打印token,正如我在我的問題中提到的那樣。順便說一句,我用'{{csrf_field()}}'嘗試過了,但它仍然給了我相同的結果。 – Fokrule

0

我已經去

`VerifyCsrfToken.php` 

解決了這個問題,然後我已經 else{ return redirect()->back(); }

改變

throw new TokenMismatchException; 但我不確定我是否正確錯誤的應用這種方式。它會在我今後在這個項目中的工作中帶來什麼問題。任何人都請讓我確定。請。

相關問題