Symfony 6 - 带有属性注释的路由 - 如何通过变量传递路由名称?
Symfony 6 - Routes with Attribute Annoation - How to pass route name via variable?
我目前正在开发一个 symfony 6 项目,并直接在控制器内部使用路由的属性注释。
示例:
#[Route('/new', name: 'country_new', methods: ['GET', 'POST'])]
现在我想通过变量传递路线名称的一部分,例如:
private $routeName = "country";
#[Route('/', name: $this->routeName.'_index', methods: ['GET'])]
但是这不起作用,我收到以下错误:
“编译错误:常量表达式包含无效操作”
你知道这是否可行吗?如果可行,我该如何实现?
实际上,这并不是 Symfony 特有的,而是一般 PHP 属性。根据 documentation:
Arguments to attributes can only be literal values or constant expressions
然而,由于它与 Symfony 相关,如果您只想为给定控制器中的所有路由添加前缀,您也可以在 class 本身上放置一个 Route 属性。
我目前正在开发一个 symfony 6 项目,并直接在控制器内部使用路由的属性注释。
示例:
#[Route('/new', name: 'country_new', methods: ['GET', 'POST'])]
现在我想通过变量传递路线名称的一部分,例如:
private $routeName = "country";
#[Route('/', name: $this->routeName.'_index', methods: ['GET'])]
但是这不起作用,我收到以下错误: “编译错误:常量表达式包含无效操作”
你知道这是否可行吗?如果可行,我该如何实现?
实际上,这并不是 Symfony 特有的,而是一般 PHP 属性。根据 documentation:
Arguments to attributes can only be literal values or constant expressions
然而,由于它与 Symfony 相关,如果您只想为给定控制器中的所有路由添加前缀,您也可以在 class 本身上放置一个 Route 属性。