有没有办法在一个控制器上同时使用动态和静态路径?
Is there a way to use both dynamic and static path on one controller?
我正在自己创建一个 Symfony CMS。我想同时映射/login
和/{slug}
这样的路径,不知道可不可以
我尝试在 2 个不同的控制器中简单地设置两条路径,但这似乎不起作用。
/**
*@Route('/login', name='login')
*/
public function login(){}
/**
*@Route('/{slug}', name='dynamic-site')
*/
public function dynamicSite(){}
通过上面的设置,每次都会到达第二条路径。没有办法访问登录。我希望 Symfony 首先尝试寻找硬编码路由,但它似乎并不像那样工作。
路由尝试按照定义的顺序一条一条地匹配路由。
所以,你必须订购你的控制器。
可能你有
controllers:
resource: '../src/Controller/'
type: annotation
您应该在 "controllers" import
之前添加“/login”
login:
controller: App\Controller\Login
type: annotation
结果应该是
# config/routes.yaml
login:
controller: App\Controller\Login
type: annotation
Slug:
controller: App\Controller\Slug
type: annotation
Don't forget to change controller names according to your application!
您可以重新阅读文档 - https://symfony.com/doc/current/routing.html
我个人更喜欢使用 yaml,因为顺序非常明确。
您应该测试是否可以同时导入两个
login:
controller: App\Controller\Login
type: annotation
controllers:
resource: '../src/Controller/'
type: annotation
您可能会遇到错误。如果出现错误,那么您将必须逐一列出所有控制器。
我正在自己创建一个 Symfony CMS。我想同时映射/login
和/{slug}
这样的路径,不知道可不可以
我尝试在 2 个不同的控制器中简单地设置两条路径,但这似乎不起作用。
/**
*@Route('/login', name='login')
*/
public function login(){}
/**
*@Route('/{slug}', name='dynamic-site')
*/
public function dynamicSite(){}
通过上面的设置,每次都会到达第二条路径。没有办法访问登录。我希望 Symfony 首先尝试寻找硬编码路由,但它似乎并不像那样工作。
路由尝试按照定义的顺序一条一条地匹配路由。 所以,你必须订购你的控制器。 可能你有
controllers:
resource: '../src/Controller/'
type: annotation
您应该在 "controllers" import
之前添加“/login”login:
controller: App\Controller\Login
type: annotation
结果应该是
# config/routes.yaml
login:
controller: App\Controller\Login
type: annotation
Slug:
controller: App\Controller\Slug
type: annotation
Don't forget to change controller names according to your application!
您可以重新阅读文档 - https://symfony.com/doc/current/routing.html
我个人更喜欢使用 yaml,因为顺序非常明确。
您应该测试是否可以同时导入两个
login:
controller: App\Controller\Login
type: annotation
controllers:
resource: '../src/Controller/'
type: annotation
您可能会遇到错误。如果出现错误,那么您将必须逐一列出所有控制器。