我有一个应该进入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
方法。为什么会这样?怎样才能解决这个问题?
因为您使用相同的URI/tests
和相同的方法(post
)声明了两条路由,就像这样:
Route::post('tests', 'TestsController@takeTest'); // first
Route::post('tests', 'TestsController@processMarking'); // second
所以第二个route
覆盖了第一个route
。如果你将第二个route
的URI
更改为其他内容,则可以正常工作,例如:
Route::post('moretests', 'TestsController@processMarking');
你不能使用相同的URI
为两个路由使用相同的方法(即post
在你的情况下)。