gpt4 book ai didi

php - Symfony2 模板渲染过程中抛出异常 ("Parameter for route must match "[^/]+ +"to generate a corresponding URL.")

转载 作者:行者123 更新时间:2023-12-03 02:59:13 25 4
gpt4 key购买 nike

在对象名称中使用反斜杠并希望通过对象 URL 继续操作时,我不断收到以下错误:

模板渲染期间抛出异常(“路由“object_show”的参数“name”必须匹配“[^/]++”(给定“black/white”)才能生成相应的URL.") 在/ObjectBundle/Resources/views/Object/index.html.twig

Controller

/**
* @Route("/show/{user}/{name}", name="object_show")
* @Template()
*/
public function showAction($user, $name, Request $request)
{
$user = $this->getDoctrine()->getRepository('UserBundle:User')
->findBy(['username'=> $user]);
$object = $this->getDoctrine()->getRepository('ObjectBundle:Object')
->findOneBy(['name' => $name, 'user' => $user]);

return array('object' => $object);
}

如何允许使用反斜杠作为对象名称并能够生成相应的 URL?

模板

      {% for object in objects %}
<div class="item" id="object_{{ object.id }}">
<a href="{{ path('object_show',
{'user': object.user.username, 'name' : object.name }) }}">
<div class="title">{{ object.name }}</div>
</a>
</div>

最佳答案

您需要将 ,requirements={"name"=".+"} 部分添加到您的路由定义中。例如:

/**
* @Route("/show/{user}/{name}", name="object_show", requirements={"name"=".+"})
* @Template()
*/
public function showAction($user, $name, Request $request)

请参阅手册部分:manual .

关于php - Symfony2 模板渲染过程中抛出异常 ("Parameter for route must match "[^/]+ +"to generate a corresponding URL."),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34592239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com