2017-06-28 87 views
0

嘗試實施PATCH路由,如果路徑爲/{userid}/{attribute},則該用戶的屬性將更改爲指定的屬性。我目前有:嘗試更新Laravel中的記錄

Route::patch('/{userId}/{band}', function($userId, $band){ 

    $user = DB::table('users')->find($userId); 
    $user->favorite_band = $band; 
    $user->save(); 

    return $user; 
}); 

這是行不通的。我相處的

(1/1) TokenMismatchException in VerifyCsrfToken.php (line 68) 

行的錯誤,我要Laravel非常新的,不知道如何做到這一點。這一切都在web.php路由文件中完成。我還沒有使用過Controller

+0

加上'csrf_token()'在你的形式 – aldrin27

+0

@ aldrin27顯然OP正在實施一個RESTful API,所以它的更新非常不像有一個形式... –

+0

我現在只是在後端工作。我有一個索引視圖正確地給我所有用戶的json,一個show view給我一個用戶的json。那就是我所在的地方。 – jsc42

回答

0

Laravel默認帶有CSRF保護。

你需要沿着CSRF令牌AJAX請求傳遞:

存放在<head>節令牌:

<meta name="csrf-token" content="{{ csrf_token() }}"> 

假設你正在使用jQuery,令牌添加到所有請求頭:

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 

參考:https://laravel.com/docs/5.4/csrf#csrf-x-csrf-token

+0

我現在只是在後端工作,我有一個索引視圖正確地給我所有用戶的json,一個show view給我一個用戶的json,這就是我所在的地方 – jsc42

0

在Laravel 5中,在表單字段中插入csrf標記。

​​
0

在內部應用VerifyCsrfToken.php文件\ HTTP \文件夾中的中間件如下

protected $except = [ 
    '*' 
]; 
+0

請澄清這隻適合開發階段! – Kyslik

+0

驗證CSRF令牌主要用於保護,如果表單存在但我知道你沒有視圖,所以它不應該是一個問題。 –