以下是我的Laravel 4项目代码。
转到作者/创建网址并提交表单会给我一个405错误。
但是,如果我将routes.php
文件添加到Route::post('authors/store', 'AuthorsController@store');
之前,基本上将它应该做的事情加倍,那么一切都像魅力一样!
为什么我需要在我的代码中添加前面的行才能工作?我只能假设我在这里做错了。
routes.php文件:
Route::resource('authors', 'AuthorsController');
AuthorsController.php:
public function create() {
$view = View::make('authors.create');
return $view;
}
public function store() {
//
}
作者/ create.twig:
{{ form_open({'url':'authors/store'},{"method" : "post"}) }}
<p>
{{ form_label("Name", "name") }}
{{ form_text("name") }}
</p>
<p>
{{ form_submit("Add Author") }}
</p>
{{ form_close() }}
答案 0 :(得分:1)
POST到资源时,store
操作获取触发器。所以只是authors
而不是authors/store
:
{{ form_open({'url':'authors'},{"method" : "post"}) }}
有关哪些URL与控制器操作相对应的详细信息,请参阅this table。
我认为它应该是这样的:
{{ form_open({'url':'authors', 'method' : 'post'}) }}
你可以通过Laravel自动生成的路线名称,让你的生活更轻松:
{{ form_open({'route':'authors.store', 'method' : 'post'}) }}
哦,还有一个,post
是默认方法,所以这也应该这样做:
{{ form_open({'route':'authors.store'}) }}