Php 如何使用注释向某些控制器添加前缀?

Php 如何使用注释向某些控制器添加前缀?,php,symfony,symfony4,symfony-routing,Php,Symfony,Symfony4,Symfony Routing,我现在有两个控制器 GitlabAuthController UserController 我只需要将路径前缀api添加到UserController 在我尝试在annotations.yaml文件中执行以下操作之前: controllers: resource: ../../src/Controller/ type: annotation prefix: api 但这会将前缀添加到我的所有控制器中 是否有任何方法可以为GitlabAuthController添加异

我现在有两个控制器

  • GitlabAuthController
  • UserController
我只需要将路径前缀
api
添加到
UserController

在我尝试在
annotations.yaml
文件中执行以下操作之前:

controllers:
    resource: ../../src/Controller/
    type: annotation
    prefix: api
但这会将前缀添加到我的所有控制器中


是否有任何方法可以为
GitlabAuthController
添加异常?

只需为不同类型的控制器创建不同的目录/名称空间

然后你可以做:

controllers:
    resource: ../../src/Controller/
    type: annotation

api_controllers:
    resource: ../../src/Controller/Api
    type: annotation
    prefix: api
Api
命名空间上定义的路由将获得
/Api/
前缀,而其他路由将不受影响


您可以通过执行
bin/console debug:router
检查生成的路由是否正常,只需为不同类型的控制器创建不同的目录/名称空间即可

然后你可以做:

controllers:
    resource: ../../src/Controller/
    type: annotation

api_controllers:
    resource: ../../src/Controller/Api
    type: annotation
    prefix: api
Api
命名空间上定义的路由将获得
/Api/
前缀,而其他路由将不受影响


您可以通过执行
bin/console debug:router

检查生成的路由是否正常。是否需要在控制器文件夹中创建文件夹Api?如果要使用上述配置,请选择“是”。并且您放入其中的控制器应位于
App\Controller\Api
命名空间中。是否需要在控制器文件夹中创建文件夹Api?如果要使用上述配置,请选择“是”。您在其中放置的控制器应该位于
App\Controller\Api
命名空间中。