【发布时间】:2020-02-12 15:09:52
【问题描述】:
我第一次遇到 laravel 5 (5.8.35) 中的路由问题。
我有一个向/client/ban 发出帖子请求的表单
<div class="text-center">
<form action="/client/ban" method="post">
{{ csrf_field() }}
Token:<br>
<label>
<input type="text" name="token">
</label>
<button type="submit" name="ban" value="1">Ban</button>
<button type="submit" name="ban" value="0">Pardon</button>
</form>
</div>
我的路线在这里,它应该将我的 /client/ban 请求重定向到 action_ban_req 方法。
Route::post('/client/ban', 'HomeController@action_ban_req');
Route::post('/client/new', 'HomeController@action_new_req');
这是我的两个方法,在HomeController.php 文件中,出于调试目的,有一个非常简单的内容(它包含在自己的路由上工作的其他方法);
public function action_ban_req(Request $request)
{
return "Test BAN";
}
public function action_new_req(Request $request)
{
return "Test NEW";
}
但是,每次我发出请求时,参数都会发送到/client/ban,但它会返回“Test NEW”。我也尝试过这条路线:
Route::post('/client/ban', function () { return 'Test'; });
即使这样,也没有区别,我仍然坚持“测试新”响应。
我错过了什么吗?
编辑:当我交换路由顺序时没有任何变化,我的其他带有 /client 前缀的路由(具有其他形式)工作正常。
【问题讨论】:
-
你还有其他带有
/client前缀的路由吗? -
切换路由顺序会发生什么?
-
我试过了,路线的顺序似乎没有改变结果。此外,我几乎没有其他带有
/client前缀的路由(以及它们的 html 格式)。 -
首先,
composer dump-autoload。然后,检查php artisan route:list是否显示两条路径。 -
看来我的旧路线已经不存在了。我相信它肯定被缓存在某个地方。编辑:哦,谢谢老兄,我用
php artisan route:cache解决了它
标签: php laravel redirect methods routes