Symfony控制器教程错误

Symfony控制器教程错误,symfony,twig,Symfony,Twig,我将按照演练学习如何使用Symfony(),但在完成“路由参数”部分并转到localhost/hello/fabien后,我收到: “404未找到此服务器上未找到请求的URL/hello/fabien。” 但是,我看不出我做错了什么-下面是我的代码: config.yml # ... framework: templating: {engines: ['twig','php']} DefaultController: <?php namespace Ap

我将按照演练学习如何使用Symfony(),但在完成“路由参数”部分并转到
localhost/hello/fabien
后,我收到:

“404未找到此服务器上未找到请求的URL/hello/fabien。”

但是,我看不出我做错了什么-下面是我的代码:

config.yml

# ...
framework:
        templating:
        {engines: ['twig','php']}
DefaultController:

<?php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     */
    public function indexAction()
    {
       /** return new Response('Welcome to Symfony!');*/
          return $this->render('default/index.html.twig');
    }


    /**
     * @Route("/hello/{name}", name="hello")
     */
    public function helloAction($name)
    {
        return $this->render('default/hello.html.twig', array(
            'name' => $name
        ));
    }
}

错误消息是不言自明的。代码应如下所示:

 /**
 * @Route("/hello/{name}", name="hello")
 */
public function helloAction($name)
{
    return $this->render('AppBundle:default:hello.html.twig', array(
        'name' => $name
    ));
}
或使用注释进行简化:

 /**
 * @Route("/hello/{name}", name="hello")
 * @Template()
 */
public function helloAction($name)
{
    return array(
        'name' => $name
    );
}

在我的例子中,我刚刚删除了{%extends'mybase.html.twig%},并运行它开始工作的代码,然后我再次将它放在同一个位置,它正在工作。可能是缓存问题。所以我要求你们也清除缓存

谢谢
Rikkin

你能运行这个
php应用程序/控制台路由器:debug
并告诉我们是否显示路由吗?你是否已将此url重定向到symfony项目/环境名称的url?如果不是,那么正确的url是/localhost/prj_dev.php/hello/fabienprj'应该是您的项目名称。开发部分用于开发环境。禁止在生产中使用它。不,它在所有情况下都是
app_dev.php
。感谢所有提示-如何将url重定向到我的symfony项目/环境名称?与此同时,
app_dev.php/hello/fabien
让我更进一步,因为我现在收到一条错误消息(!):
CRITICAL-Uncaught php异常InvalidArgumentException:“模板名”default/hello.html.twig“无效(格式为“bundle:section:Template.format.engine”)。”在/home/zac/Test/app/cache/dev/classes.php第734行
。谢谢@Udan,第二行不起作用,但我想这是因为我遗漏了一些东西-我在想你的第一段代码,但这意味着教程错了?我现在得到的错误是:
CRITICAL-Uncaught PHP异常InvalidArgumentException:“找不到模板”AppBundle:default:hello.html.twig“。位于/home/zac/Test/vendor/symfony/symfony/src/symfony/Bridge/twig/TwigEngine.PHP第128行
。但是我的hello.html.twig位于
/app/Resources/views/default
下,这就是问题所在@Template()注释在参考资料/views/.html.twigI下查找当前捆绑包中的模板。我们现在可以使用它了-谢谢大家的帮助。我不确定最终的问题是什么,但我与问题中的原始代码唯一明显的区别是将config.yml更新为
模板化:引擎:['twig']
 /**
 * @Route("/hello/{name}", name="hello")
 */
public function helloAction($name)
{
    return $this->render('AppBundle:default:hello.html.twig', array(
        'name' => $name
    ));
}
 /**
 * @Route("/hello/{name}", name="hello")
 * @Template()
 */
public function helloAction($name)
{
    return array(
        'name' => $name
    );
}