在我的http://localhost:8000/dashboard.user.update
表单上点击Submit
后尝试访问edit
时,我的laravel 5.1项目中发生了此错误。
NotFoundHttpException in RouteCollection.php line 143:
当我在控制器中运行update
函数时,会发生此错误。运行index
或show
等其他功能时,我没有错误。
这是我的路线:
...
// 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\UserController@store | auth |
| | GET|HEAD | dashboard/user | dashboard.user.index | App\Http\Controllers\UserController@index | auth |
| | GET|HEAD | dashboard/user/create | dashboard.user.create | App\Http\Controllers\UserController@create | auth |
| | DELETE | dashboard/user/{user} | dashboard.user.destroy | App\Http\Controllers\UserController@destroy | auth |
| | GET|HEAD | dashboard/user/{user} | dashboard.user.show | App\Http\Controllers\UserController@show | auth |
| | PUT | dashboard/user/{user} | dashboard.user.update | App\Http\Controllers\UserController@update | auth |
| | PATCH | dashboard/user/{user} | | App\Http\Controllers\UserController@update | auth |
...
现在我不知道该怎么做,可以帮忙吗?
答案 0 :(得分:0)
与您的路线表一样,您需要PUT或PATCH进行更新呼叫。您的路线是正确的,但是laravel也会检查路线的方法类型。 我想你想要显示一个视图而不是返回一个json(RestAPI),如果这样,那么隐式控制器比资源要好得多!
http://laravel.com/docs/5.1/controllers#implicit-controllers
如果你想使用它们,你必须将你的方法重命名为getIndex(),getEdit(),postStore(),如果你想要post not not put而不是postUpdate()。
答案 1 :(得分:0)
如果是更新,请告诉laravel它是" PUT"请求。因为只有POST方法的那个url与user_id不存在。
<input name="_method" type="hidden" value="PUT">
这样的事情:
<form method="POST" action="http://localhost:8000/dashboard/user/1">
<input name="_method" type="hidden" value="PUT">
//...