簡體   English   中英

Laravel在數據庫中添加新記錄返回錯誤

[英]Laravel add new record in database returns error

當您單擊帶有ajax的按鈕時,我試圖添加一個新的購物車。我的代碼如下:

1)按鈕

<a class="checkout-button">checkout</a>

2)阿賈克斯

$('.checkout-button').on('click', function(){
  var url = '{{route('postcheckout')}}';
  $.ajax({
    type : 'POST',
    url : url,
    headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}' },
    data : {'user_id' : 5},
    success:function(data){
      console.log(data);
    }
  });
});

console.log和用於測試的數據。

3)路線

Route::post('/checout',[
    'uses' => 'checkoutController@insertCart',
    'as' => 'postcheckout'
]);

4)控制器

Use App\delivery_cart;

public function insertCart(Request $request){               
  $user_id = $request['user_id'];
  $cart = new delivery_cart;
  $cart->user_id = $user_id;
  $cart->save();
}

數據庫有2列cart_id (primary,ai)和user_id

當我嘗試插入新記錄時,出現錯誤500(內部服務器錯誤,它表示: MethodNotAllowedHttpException 。但是,當我從數據庫中讀取它時,它起作用了。我發現了類似的問題,並且我認為令牌出了點問題,但是我無法解決這個問題。

誰能幫助我?

它產生該錯誤,因為該路由沒有get方法進入您的路由

解決,您必須將該方法注冊到您的路由中。

改變你的路線

Route::post('/checout',[
    'uses' => 'checkoutController@insertCart',
    'as' => 'postcheckout'
    ]);

Route::any(array('post','get'),'/checout',[
    'uses' => 'checkoutController@insertCart',
    'as' => 'postcheckout'
    ]);

或者你可以添加

Route::get('/checout',[
    'uses' => 'checkoutController@insertCart',
    'as' => 'postcheckout'
    ]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM