【发布时间】:2020-06-26 19:13:33
【问题描述】:
我正在使用 symfony 5,并将路由指定为注释。所以现在我需要在路由中传递一些额外的数据。它不是路由的一部分,但我需要为每个路由设置一个值。因此,我使用选项对象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>
【问题讨论】:
-
我想这取决于您需要可用数据的范围。如果您在控制器中需要它,也许您可以使用额外的参数。喜欢这里:symfony.com/doc/current/routing.html#extra-parameters
-
也许我在这里遗漏了一些东西,但是如果你需要传递的数据不是路由的一部分,为什么你首先需要在注释中指定它?为什么不在控制器动作的方法中定义一个变量呢?
-
@patrick3853 我正在实现一些东西,我需要根据路由在 html 中创建一些链接。所以我在
options.label中设置的数据将是href 的文本。喜欢<li href="{{path(route)}}">{{ label }}</li> -
您考虑过只添加翻译吗?喜欢 ...
{{ route|trans }}并在您的翻译文件中为每条路线添加标签?甚至可以为此使用不同的域,这样它就不会与其他翻译冲突,以防万一。然后将是{{ route|trans({}, 'route_labels') }}。如果你碰巧在某个时候翻译了它,它也会缩放。
标签: php symfony symfony4 symfony5 php-7.4