我在 routing.yml 中有几条规则
homepage:
url: /
param: { module: cars, action: index }
letters:
url: /:letter
class: sfPropelRoute
options:
model: MyCarmodelPeer
type: object
param:
module: cars
action: alphalist
linkmode: "@letters"
requirements:
letter: "([A-Z])"
sf_method: [get]
show:
url: /:slug
class: sfPropelRoute
options:
model: MyCarmodelPeer
type: object
param:
module: cars
action: view
linkmode: "@show"
requirements:
slug: "([A-Z]|0-9)"
sf_method: [get]
default:
url: /:module/:action/*
到主页的路由按预期工作。但是字母和显示路线无法正常工作。如果第一个路由字母那么它工作正常,并且路由显示不起作用。在这种情况下,我在解析 URL“/bmw-1-series-187-5-120-2004-2008”(/) 后出现错误空模块和/或操作。 如果我重新排列它们,那么字母指向一个动作视图,但它应该指向动作字母表。
为什么它们会互相覆盖?
更新
这是另一个网站上的一个案例,它有效。
letters:
url: /:letter
param:
module: define
action: alphalist
linkmode: "@letters"
cachename: "letters"
layer: "@default-layer"
requirements:
letter: "([A-Z]|0-9)"
disclaimer:
url: /medical-disclaimer/
param:
module: define
action: disclaimer
default-layer:
url: /:search
param:
module: define
action: word
linkmode: "@default-layer"
cachename: "default-layer"
options:
segment_separators: ['', '/']