0

如果我在 Symfony2 中被冒充为另一个用户,我在更改页面时会收到错误消息。仅当路由具有附加参数时才会发生。在指定的行号处没有生成路由的迹象。

控制器动作

/**
 * @Route("/member/{id}", name="member_page")
 * @Template()
 */
public function memberAction($id)

错误

在第 2 行的 members.html.twig 中呈现模板期间引发了异常(“缺少一些强制参数(“slug”)以生成路由“member_page”的 URL。”)。

4

3 回答 3

2

你有两条同名的路线吗?

注意你的 routing.yml 文件或类注释,也许你已经定义了一个带有 slug 参数的前缀。

于 2013-11-12T16:59:01.057 回答
0

如果不需要“slug”参数,则为其提供默认值 NULL。这是一个例子

message_edit:
    pattern:  /edit/{slug}
    defaults: { _controller: CommunicationBundle:Default:edit, slug: null }
于 2013-11-12T18:32:04.650 回答
0

感谢您的回答,但还有其他事情发生:该模板正在扩展另一个可以在其中找到错误的模板。因此错误消息中显示了不正确的行号。在设置了一个较小的测试环境后,我可以复制这个问题。这是一个退出模拟的锚点,我想重定向到当前页面,但显然缺少当前页面的参数

<a href="{{ path( 'app.request.attributes.get('_route')', {'_switch_user': '_exit'}) }}">Stop impersonation</a>

我现在只使用命名的“家”路线来修复它。

于 2013-11-13T09:50:40.007 回答