Laravel 4 store()方法错误MethodNotAllowedHttpException

时间:2014-06-25 20:02:47

标签: php laravel laravel-4

我看了看周围是否能找到这个具体问题,但到目前为止都没有成功。

问题很简单。我使用工匠生成的UsersController来处理/ users目录中的RESTful通信。 GET工作正常,但每当我将表单发布到/ users时,它不会像应该的那样正确执行store()方法,而是抛出MethodNotAllowedHttpException错误。当我创建一个新的处理程序postNew()和POST给users / new时,它工作得很好。我可以使用它,但我真的想弄清楚问题是什么,所以我可以使用标准的RESTful方法。

此外,我没有使用Laravel的表单生成器,因为我打算缓存每个页面的速度,并且不想为我发送的每个表单生成唯一的ID。我在另一篇文章中看到,这可能会导致问题,但无法找到将其集成到解决方案中的方法。

<form id="signup-form" method="POST" action="users">                         
  <label>First Name:</label>                    
  <input type="text" name="firstName">                  
  <label>Last Name:</label>
  <input type="text" name="lastName">
  <input type="submit" value="Sign Up Free!">
</form>

那是我的代码。

1 个答案:

答案 0 :(得分:0)

controller:make只会创建一个资源控制器,它不会定义其路由。

由于您提到您创建了一个新的控制器方法postNew(),并且当您向users/new发送POST请求时它可以正常工作,我将假设您已经创建了一个 RESTful控制器 route和 资源路由。

RESTful控制器路由(与controller:make不兼容):

Route::controller('users', 'UsersController');

资源控制器路由(与controller:make兼容):

Route::resource('users', 'UsersController');

Controllers docs pageRESTfullResource概述了这两种控制器类型之间的差异。