为了账号安全,请及时绑定邮箱和手机立即绑定

在 Symfony 路由注释中指定自定义数据

在 Symfony 路由注释中指定自定义数据

PHP
慕娘9325324 2023-07-01 15:07:21
我正在使用 symfony 5,并将路由指定为注释。所以现在我需要随路线传递一些额外的数据。它不是路由的一部分,但我需要为每个路由都有一个值。所以我使用 options object 指定如下所示的路线options={"label"="COMMMON_CLIENTMANAGEMENT"}。它不会产生错误。所以我不确定它是否有效。此外,我无法从任何路由服务检索数据。 *     * @Route("/client/list", name="client_list", options={"label"="COMMMON_CLIENTMANAGEMENT"})  * @return \Symfony\Component\HttpFoundation\Response  */我想根据这些数据创建一个 html,就像<li href="{{path(route)}}">{{ label }}</li>
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

更新:


因此,我做了更多的实验,因为我收集的目的是在列出路线时使用“标签”数据。我认为使用默认部分仍然更容易,但您可以使用路由集合访问选项信息:


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"})

     */


查看完整回答
反对 回复 2023-07-01
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信