假设我必须按以下顺序遵循 2 条路线:
Zip:
url: home/:zip
param: { module: home, action: results }
State:
url: home/:state
param: { module: home, action: results }
我使用的路线如下:
'@State?state=CA'
为什么它会解析为 Zip 路线? 我认为当您显式指定路由名称:“@State”时,它没有解析整个路由文件,而只是使用您要求的特定路由。
我希望能够使用相同的操作来根据变量名称(zip 或状态)显示数据,我不想为了传递不同的参数而两次创建相同的操作(结果) .
最佳答案
您需要添加要求,以便它能够识别不同的格式
Zip:
url: home/:zip
param: { module: home, action: results }
requirements: { zip: \d{5} } # assuming only 5 digit zips
State:
url: home/:state
param: { module: home, action: results }
requirements: { state: [a-zA-Z]{2} }
这应该可以解决这个问题,尽管我同意你的观点,当你在助手中使用路由名称时,它应该使用命名的路由。
关于php - 你能强制 symfony 解析到特定的路由吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/644740/