Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Symfony布线批注中指定自定义数据_Php_Symfony_Symfony4_Symfony5_Php 7.4 - Fatal编程技术网

Php 在Symfony布线批注中指定自定义数据

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",

我使用的是symfony 5,并将路由指定为注释。所以现在我需要在路由中传递一些额外的数据。它不是路由的一部分,但我需要为每个路由设置一个值。因此,我使用options对象
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想要循环遍历某个路由集合并访问那里的标签,注释中的示例(带
  • )似乎暗示。。。