Php 在Symfony布线批注中指定自定义数据
我使用的是symfony 5,并将路由指定为注释。所以现在我需要在路由中传递一些额外的数据。它不是路由的一部分,但我需要为每个路由设置一个值。因此,我使用options对象Php 在Symfony布线批注中指定自定义数据,php,symfony,symfony4,symfony5,php-7.4,Php,Symfony,Symfony4,Symfony5,Php 7.4,我使用的是symfony 5,并将路由指定为注释。所以现在我需要在路由中传递一些额外的数据。它不是路由的一部分,但我需要为每个路由设置一个值。因此,我使用options对象options={“label”=“COMMMON\u CLIENTMANAGEMENT”}指定如下路由 它不会产生错误。所以我不确定它是否有效。此外,我还无法从任何路由服务检索数据 * * @Route("/client/list", name="client_list",
options={“label”=“COMMMON\u CLIENTMANAGEMENT”}
指定如下路由
它不会产生错误。所以我不确定它是否有效。此外,我还无法从任何路由服务检索数据
*
* @Route("/client/list", name="client_list", options={"label"="COMMMON_CLIENTMANAGEMENT"})
* @return \Symfony\Component\HttpFoundation\Response
*/
我想基于这些数据创建一个html,它类似于{{{label}}
更新:
所以我做了更多的实验,因为我收集的目的是在列出路线时使用“标签”数据。我认为使用默认设置部分更容易,但您可以使用route集合访问选项信息:
class PlayCommand extends Command
{
protected static $defaultName = 'app:play';
private RouterInterface $router;
public function __construct(RouterInterface $router)
{
parent::__construct();
$this->router = $router;
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$routes = $this->router->getRouteCollection();
$route = $routes->get('index');
$label = $route->getOption('label');
不确定是否有一种方法可以直接从细枝内部获取路由,但为此编写一个细枝扩展非常简单
原始答复:
本节用于提供其他信息
我很难在选项部分找到文档。本文讨论了一些新选项,如utf-8支持。我认为选项部分是路由器使用的。不肯定
/**
* @Route("/", name="index", options={"label"="COMMMON_CLIENTMANAGEMENT"})
*/
我想这取决于您需要可用数据的范围。如果在控制器中需要它,也许可以使用额外的参数。比如这里:也许我在这里遗漏了一些东西,但是如果需要传递的数据不是路由的一部分,那么为什么首先需要在注释中指定它呢?为什么不在控制器操作的方法中定义一个变量?@patrick3853我正在实现一些东西,我需要基于路由在html中创建一些链接。因此,我在
options.label中设置的数据将是href的文本。像{{{label}}
你考虑过只添加翻译吗?像<代码>{route | trans}}
并在翻译文件中为每条路线添加标签?甚至可以使用一个不同的领域,这样它就不会与其他翻译冲突,以防你得到任何。然后将是{{route | trans({},'route_标签')}}
。如果你碰巧在某个时候翻译了这个,那么也可以进行缩放。我假设OP想要循环遍历某个路由集合并访问那里的标签,注释中的示例(带