laravel 4.1形式与控制器动作剂量路线正确的路线

时间:2014-06-09 21:10:59

标签: php forms laravel url-routing

我有一个表单应该转到TestsController控制器及其takeTest方法,这是下面生成form的代码:

{{ Form::open(array('action' => 'TestsController@takeTest')) }}

生成的HTML

<form method="POST" action="http://192.168.0.8/tests" accept-charset="UTF-8"

routes.php档案中声明的路线:

Route::get('tests', 'TestsController@index');

Route::post('tests', 'TestsController@takeTest');

Route::post('tests', 'TestsController@processMarking');

它应该转到takeTest方法,但它转到processMarking方法。为什么这个以及如何解决?

1 个答案:

答案 0 :(得分:2)

因为您已使用相同的URI/tests和相同的方法(post)声明了两条路线,如下所示:

Route::post('tests', 'TestsController@takeTest'); // first

Route::post('tests', 'TestsController@processMarking'); // second

所以第二个route会覆盖第一个route。如果您将第二个URI的{​​{1}}更改为其他内容,那么它就可以正常工作,例如:

route

您不能使用相同的方法对两条路线使用相同的Route::post('moretests', 'TestsController@processMarking'); (例如URI)。