我有一个表单应该转到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
方法。为什么这个以及如何解决?
答案 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
)。