我正在尝试有条件地使用多边域的路由。
我目前拥有的是:
@MyClassDecorator(AppService)
export class MyClass {
@MyMethodDecorator('event')
myDecoratedFunction(eventName: string, data: any) {
console.log(`Hi there! I've been triggered by the AppService's ${eventName} event with ${data}`);
}
}
两个文件夹中的控制器具有相同的路由名称,因为这是应用程序的构建方式。 由于应用仍在加载两条路线,因此上述操作无效。对于用户域,构建了admin的URL。 我要实现的目标完全有可能还是完全以这种错误的方式进行的?
最终,对于给定的主机名,我只希望对控制器进行设置。
答案 0 :(得分:1)
路线必须具有唯一的名称。如果有2条具有相同名称的路由,则一条将覆盖另一条。对于主机规范,这仅影响路由是否匹配。类似于路线要求。
解决问题的方法是在两个Controller中以不同的方式命名路由。要实现此目的的一件事是通过Controller类注释中的路由名称前缀。
switch
和
/**
* @Route("/path", name="admin_")
*/
https://symfony.com/blog/new-in-symfony-3-4-prefix-all-controller-route-names
路由可以具有相同的/**
* @Route("/path", name="user_")
*/
前缀,但它们的名称需要不同。这样,他们可以将相同的路径与不同的条件匹配。