缺少Symfony2模拟路由参数

时间:2013-11-12 14:20:45

标签: symfony impersonation

如果我在Symfony2中被模仿为另一个用户,我在更改页面时会收到错误。它仅在路径具有其他参数时发生。在指向的行号处没有路由生成的迹象。

控制器操作

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

错误

  

在呈现模板期间抛出异常(“缺少一些必需参数(”slug“)以生成路径”member_page“的URL。”)在members.html.twig第2行。

3 个答案:

答案 0 :(得分:2)

你有两条同名的路线吗?

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

答案 1 :(得分:0)

如果不需要“slug”参数,请将其默认值设置为NULL。这是一个例子

message_edit:
    pattern:  /edit/{slug}
    defaults: { _controller: CommunicationBundle:Default:edit, slug: null }

答案 2 :(得分:0)

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

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

我现在只使用指定的'home'路线修复它。