3 回答
TA贡献1784条经验 获得超2个赞
我的第一个建议是将参数最多的路线放在顶部,例如:
Route::any('route/me/here/and/here','Tst@routeme');
Route::any('route/me/here/{id?}','Tst@routeme');
Route::any('route/me/here/','Tst@routeme');
它更像是最先匹配的路由首先执行,因此从上到下,参数最少的路由最后匹配。
第二件事我建议您将路线分组,例如:
Route::prefix('route/me')->group(function () {
Route::get('here/and/here', 'Tst@routeme');
Route::get('here/{id?}', 'Tst@routeme');
Route::get('here', 'Tst@routeme');
});
为了更好的可读性...
TA贡献2019条经验 获得超9个赞
我无法详细说明为什么会发生这种特定情况,但是,匹配您的开发和生产环境应该可以在将来消除这些问题。
家园
Laravel 团队提供的 Homestead vagrant box 是一个可靠的选择,并且有很好的文档记录。它是 Ubuntu 18.04 / 20.04 机器,可以配置许多附加组件。您可以使用文件中的一行轻松配置任何给定项目正在使用的 PHP 版本Homestead.yaml
。
Docker
Docker 更先进一些,但配置方式非常灵活。它的容器设计允许您将一个项目的依赖关系与下一个项目隔离。
这些设置并不困难(一两天内即可轻松完成),并且允许您几乎完美地复制生产环境。
它将在那些“但它可以在我的机器上运行”的时刻提供巨大帮助!
TA贡献1807条经验 获得超9个赞
更新我自己的问题,以便对其他人有所帮助。
我想说这可能是某人(或至少是我)未能检查的最后一件事。我尝试列出服务器中的路由,但发现找不到我新添加的路由。
php artisan route:list
早些时候,我清除了缓存,重新启动了apache,但没有帮助。最后发现当路由被缓存且无法工作时,以下命令是一个救星。所以对我有用的事情是清除“路由”缓存。
php artisan route:cache php artisan route:clear
- 3 回答
- 0 关注
- 152 浏览
添加回答
举报