Symfony 3-路由取决于主机名

时间:2019-05-01 09:04:16

标签: php symfony symfony-3.4

我正在尝试有条件地使用多边域的路由。

我目前拥有的是:

@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。 我要实现的目标完全有可能还是完全以这种错误的方式进行的?

最终,对于给定的主机名,我只希望对控制器进行设置。

1 个答案:

答案 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_") */ 前缀,但它们的名称需要不同。这样,他们可以将相同的路径与不同的条件匹配。