0

當我在我的edit表單上單擊Submit後,嘗試訪問http://localhost:8000/dashboard.user.update時,此錯誤發生在我的laravel 5.1項目中。Laravel 5.1 - 路由錯誤 - RouteCollection.php中的NotFoundHttpException行143:

NotFoundHttpException in RouteCollection.php line 143: 

當我在我的控制器中運行update函數時發生此錯誤。運行indexshow等其他功能時,我沒有錯誤。

這是我的路線:

... 
// Dashboard routes... 
Route::resource('dashboard/user', 'UserController'); 
Route::resource('dashboard', 'DashboardController'); 
... 

我已經運行php artisan route:list,看看我的路由工作:

+--------+----------+-----------------------+------------------------+---------------------------------------------+------------+ 
| Domain | Method | URI     | Name     | Action          | Middleware | 
+--------+----------+-----------------------+------------------------+---------------------------------------------+------------+ 
... 
|  | POST  | dashboard/user  | dashboard.user.store | App\Http\Controllers\[email protected] | auth  | 
|  | GET|HEAD | dashboard/user  | dashboard.user.index | App\Http\Controllers\[email protected] | auth  | 
|  | GET|HEAD | dashboard/user/create | dashboard.user.create | App\Http\Controllers\[email protected] | auth  | 
|  | DELETE | dashboard/user/{user} | dashboard.user.destroy | App\Http\Controllers\[email protected] | auth  | 
|  | GET|HEAD | dashboard/user/{user} | dashboard.user.show | App\Http\Controllers\[email protected] | auth  | 
|  | PUT  | dashboard/user/{user} | dashboard.user.update | App\Http\Controllers\[email protected] | auth  | 
|  | PATCH | dashboard/user/{user} |      | App\Http\Controllers\[email protected] | auth  | 
... 

現在我不知道該怎麼辦,能幫忙嗎?

+0

你不應該訪問way..it應該是http路線://本地主機:8000 /儀表板/用戶/ ID是ID是的標識用戶 – JLPuro

+0

@JLPuro,yes,'localhost:8000/dashboard/user/user_id'是顯示數據時的訪問方式。運行'localhost:8000/dashboard/user/user_id'到'show'或'localhost:8000/dashboard/user/user_id/edit'到'edit'我沒有錯誤。我需要的是'更新'。 – wahyueka31

+0

@JLPuro,順便說一句,使用'http:// localhost:8000/dashboard.user.update'不是我的方式來訪問路由。拉拉維爾做到了。該URI顯示在我的瀏覽器URL中。 – wahyueka31

回答

0

就像你的路由表所說的,你需要PUT或PATCH來更新呼叫。你的路線是正確的,但是laravel也會爲方法類型檢查路線。 我認爲你想顯示一個視圖,而不是返回一個JSON(RestAPI)如果是這樣,隱式控制器比資源好得多!

http://laravel.com/docs/5.1/controllers#implicit-controllers

如果你想使用它們你有你的方式重命名爲getIndex(),getEdit(),postStore(),如果你想POST不要把高於postUpdate()。

0

如果是更新,告訴laravel這是一個「PUT」請求。由於簡單的POST方法與該user_id URL不存在。

<input name="_method" type="hidden" value="PUT"> 

事情是這樣的:

<form method="POST" action="http://localhost:8000/dashboard/user/1"> 
    <input name="_method" type="hidden" value="PUT"> 
    //... 
相關問題