我将symfony 4和注释类型用于路线。
我的Admin
目录中有一个Controller
目录。
在Controller
目录中,我有3个带有某些路由的控制器
在我的Admin
目录中,我有EmployeeController
(以“ / employee”为前缀,以“ employee_”命名)具有3条路由(索引,新建,编辑)
我的annotations.yaml
文件如下:
admin:
resource: ../../src/Controller/Admin/
type: annotation
prefix: /admin
name_prefix: admin_
trailing_slash_on_root: false
public:
resource: ../../src/Controller/
type: annotation
trailing_slash_on_root: false
在bin/console debug:router
之后,我有:
admin_employee_index GET ANY ANY /admin/employee/
admin_employee_new GET|POST ANY ANY /admin/employee/new
admin_employee_edit GET|POST ANY ANY /admin/employee/{id}/edit
employee_index GET ANY ANY /employee/
employee_new GET|POST ANY ANY /employee/new
employee_edit GET|POST ANY ANY /employee/{id}/edit
dashboard_index GET ANY ANY /dashboard/{year}/{week}
schedule_index ANY ANY ANY /schedule/{year}/{week}
localization_index ANY ANY ANY /localization/{id}
可以排除已经配置的控制器或目录吗? 因为symfony为同一控制器生成2条路由。
当然,我可以使用单个配置进行路由(在此示例中为public),并使用“ / admin / employee”为管理控制器设置前缀,但我不喜欢这种方法。这意味着每个控制器都需要此配置。
答案 0 :(得分:1)
您不能从路由定义中排除目录。作为分隔控制器的更好方法,您可以在AdminController
中创建src
目录,然后将所有管理控制器移到那里。