【发布时间】:2015-10-14 10:35:05
【问题描述】:
我有一个路由资源 Route::resource('projects', 'ProjectsController');,当我运行 route:list 时,我可以看到 POST 可用。
+--------+----------+--------------------------+------------------+--------------------------------------------------------------+-----------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+----------+--------------------------+------------------+--------------------------------------------------------------+-----------------+
| | GET|HEAD | projects | projects.index | App\Http\Controllers\ProjectsController@index | auth |
| | POST | projects | projects.store | App\Http\Controllers\ProjectsController@store | auth |
| | GET|HEAD | projects/create | projects.create | App\Http\Controllers\ProjectsController@create | auth |
| | GET|HEAD | projects/{projects} | projects.show | App\Http\Controllers\ProjectsController@show | auth |
| | PUT | projects/{projects} | projects.update | App\Http\Controllers\ProjectsController@update | auth |
| | PATCH | projects/{projects} | | App\Http\Controllers\ProjectsController@update | auth |
| | DELETE | projects/{projects} | projects.destroy | App\Http\Controllers\ProjectsController@destroy | auth |
| | GET|HEAD | projects/{projects}/edit | projects.edit | App\Http\Controllers\ProjectsController@edit | auth |
+--------+----------+--------------------------+------------------+--------------------------------------------------------------+-----------------+
当我在/projects/create(显示我的表单)并点击我的提交按钮时,我收到一条错误消息:
MethodNotAllowedHttpException in RouteCollection.php line 201:
at RouteCollection->methodNotAllowed(array('GET', 'HEAD', 'PUT', 'PATCH', 'DELETE')) in RouteCollection.php line 188
这也许是我定义我的<form> 标签的方式吗?我没有使用正确的操作吗?
<form method="post" action="">
我也试过<form method="post" action="{{ url('projects/store') }}">
对不起,我是 laravel 的菜鸟!
【问题讨论】:
-
谁投票结束我的问题,因为它是题外话,请解释
-
您的路线仅指定
GET和HEAD允许的/projects/create方法,但您使用POST方法提交表单。调整您的路线文件以接受POST。 -
我现在明白了,谢谢。 @Zerp 指出我的操作需要简单地指向
/projects以便我存储 -
你当然可以用任何你想要的方式解决这个问题,但最重要的是,由于你使用了一个在路由文件中没有定义的方法,所以引发了异常。