2017-03-18 30 views
0

刪除項ImageController.php我有以下幾點:Laravel,不能從模型

public function destroy($id) 
{ 
    $image = Image::find($id); 
    $image->delete(); 
    return Response; 
} 

而且在路線/ web.php:

namespace App\Http\Controllers; 
use Illuminate\Http\Request; 
use App\Image;  
Route::resource('image', 'ImageController'); 

但郵差使用Chrome瀏覽器時發送DELETE請求到http://localhost:8000/image/5(當使用GET時返回圖像),圖像不會從服務器上刪除。

我在做什麼錯?

編輯,錯誤日誌:

Whoops, looks like something went wrong. 

1/1 
TokenMismatchException in VerifyCsrfToken.php line 68: 
in VerifyCsrfToken.php line 68 
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 148 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49 
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 148 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64 
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 148 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37 
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 148 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59 
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 148 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102 
at Pipeline->then(object(Closure)) in Router.php line 561 
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520 
at Router->dispatchToRoute(object(Request)) in Router.php line 498 
at Router->dispatch(object(Request)) in Kernel.php line 174 
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 30 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30 
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30 
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ValidatePostSize.php line 27 
at ValidatePostSize->handle(object(Request), object(Closure)) in Pipeline.php line 148 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102 
at Pipeline->then(object(Closure)) in Kernel.php line 149 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116 
at Kernel->handle(object(Request)) in index.php line 54 
at require_once('/Users/sahandz/Documents/School/Singapore/CS3226/retellgram-master 2/backend/public/index.php') in server.php line 21 
+0

使用App \ Image;定義? – Scaffold

+0

有沒有錯誤?對請求的迴應是什麼? – manniL

+0

錯誤日誌添加到問題。 – Sahand

回答

1

要解決TokenMismatchException,你需要做以下任一操作:

  1. 隨着您的郵遞員刪除請求,發送CSRF令牌作爲_token在請求頭中的請求主體或X-CSRF-TOKEN
  2. 將刪除請求更改爲獲取請求以進行刪除。所有獲取請求都被視爲Laravel中的讀取請求,因此CSRF令牌驗證不會執行。請注意,這將禁用此路由的CSRF保護
  3. 在您的app/Http/Kernel.php文件中,註釋掉\App\Http\Middleware\VerifyCsrfToken::class行以刪除CSRF驗證。請注意,這將禁用所有網絡路由的CSRF保護
+0

您好,感謝您的回答。 那麼,如果我想要做替代方案1,我會在頭中寫入'X-CSRF-TOKEN'作爲鍵還是值?如果你看看郵差用戶界面,你會發現在標題選項中有一個「鍵」和「值」字段。我每個人寫什麼? – Sahand

+0

'X-CSRF-TOKEN'將是關鍵,您需要設置一個獲取值的獲取路線。然後複製粘貼到這個請求的價值 – Paras

+0

你能詳細說明「設置一個獲取路線,吐出價值」嗎?我對此完全陌生。 – Sahand