我看了看周围是否能找到这个具体问题,但到目前为止都没有成功。
问题很简单。我使用工匠生成的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>
那是我的代码。
答案 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 page:RESTfull与Resource概述了这两种控制器类型之间的差异。