gpt4 book ai didi

php - “无法为命名路由生成 URL

转载 作者:行者123 更新时间:2023-12-04 18:38:01 25 4
gpt4 key购买 nike

我刚开始玩 symfony2,我正在努力添加 url 等。
当使用@Route 传递其名称时,我似乎无法让我的 Twig 模板接收我的函数。
任何想法为什么?

Controller :

/**
* @Route("/cube/{number}", name="get_cubed")
*/
public function indexAction($number)
{
$cube = $number * $number * $number;
return $this->render('NumberCubedBundle:Default:index.html.twig',
array('number' => $number, 'cube' => $cube)
);
}

我的 Twig 文件:
{% extends '::base.html.twig' %}
{% block title %}Cube Number Generator{% endblock %}
{% block body %}
{{ number }}^3 = {{ cube }}
<a href="{{ path('get_cubed', { 'number': 40 }) }}">Cube 40</a>
{% endblock %}

错误:
An exception has been thrown during the rendering of a template ("Unable to generate a URL for the named route "get_cubed" as such route does not exist.") in NumberCubedBundle:Default:index.html.twig at line 5. 

任何帮助将不胜感激。
谢谢

最佳答案

编辑:为什么注释不起作用

很可能你没有像 annotation routing 中解释的那样包含 Sensio 的供应商包。和 sensio framwork EXTRA bundle .

默认路由机制使用不需要额外包的路由文件(routing.yml)。

另一方面,通过注释的路由被认为是一个并不总是需要的附加功能,因此已被提取到一个单独的和可选的包中。

需要在路由文件中配置路由:

app/config/routing.yml

定义路由 get_cubed使用 standard Symfony 2 routing syntax .

很像这样:
get_cubed:
path: /cube/{number}
defaults: { _controller: NumberCubedBundle:Default:index }
requirements:
number: \d+

现在您应该能够获得带有路线的页面:
.../app_dev.php/cube/40

关于php - “无法为命名路由生成 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25728172/

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