我正在使用Symfony 3.4.4
并获取Twig_Error_Loader:
Unable to find template "MyBundle:Default:index.html.twig" (looked into: /Users/nemanja/sites/SimfoniAplikacija/app/Resources/views, /Users/nemanja/sites/SimfoniAplikacija/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form).
这是我在MyBundle / Controller中的默认控制器
<?php
namespace MyBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class DefaultController extends Controller
{
/**
* @Route("/my", name="mypage")
*/
public function indexAction()
{
return $this->render('MyBundle:Default:index.html.twig');
}
}
我的索引文件就是:MyBundle/Default/index.html.twig
我尝试更改返回$this->render('MyBundle:Default:index.html.twig');
到return $this->render('MyBundle/Default/index.html.twig');
但我仍然得到同样的错误。它无法找到索引模板。
答案 0 :(得分:0)
首先,我尝试在包名称前添加@
符号:
return $this->render('@MyBundle/Default/index.html.twig');
但是我得到一个错误:
There are no registered paths for namespace "MyBundle".
要找出命名空间,我运行:
bin/console debug:twig
此列出
...
@My - src/MyBundle/Resources/views
@!My - src/MyBundle/Resources/views
...
而不是我在控制器中添加的内容:
<?php
namespace MyBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class DefaultController extends Controller
{
/**
* @Route("/my", name="mypage")
*/
public function indexAction()
{
return $this->render('@My/Default/index.html.twig');
}
}
现在它可以在指定的路径找到索引模板。
答案 1 :(得分:-1)
您的模板路径应为:
/Users/nemanja/sites/SimfoniAplikacija/app/Resources/views/index.html.twig
此致