php - 如何解决路由匹配问题
问题描述
我配置了两条路线。
Route::get("/team/{team}", "TeamController@show");
Route::get("/team/members", "TeamController@members");
但是,当我想访问该路线/team/members
时,我会被误导到该路线/team/{team}
。
我尝试使用正则表达式来限制引导方法中的路由参数RouteServiceProvider
public function boot()
{
parent::boot();
Route::pattern('members', "/^((?!members).)*$/is");
}
但它没有用。
使用 postman 访问接口仍然是引导到/team/show
路由。所以我该怎么做?
解决方案
您需要更改路线的顺序,否则{team}
还会赶上'members'
:
Route::get("/team/members", "TeamController@members");
Route::get("/team/{team}", "TeamController@show");
Laravel 总是使用第一个匹配的路由。
推荐阅读
- ruby - 带有 net-http-persistent 的法拉第使连接保持打开状态,导致“Errno::EMFILE: Too many open files”
- amazon-web-services - 在 Terraform 数据查找中选择标记以 a 或 b 结尾的位置
- salesforce - google云数据融合Salesforce插件错误
- javascript - 我怎样才能使这个项目的视频部分工作?
- python - 使用另一个函数返回值
- java - 布尔字段的反序列化和验证
- python - 当循环应该不同时重复相同的输出
- r - getCensus 夏威夷城市人口
- c# - c# TCP socket如何验证传入的字符串并处理它
- unix - What does this 'ls' command do?