我遇到了问题。 我的Symfony 2.8项目中有一个名为' AchievementController'的控制器。我把它放在一个名为' Registration'的文件夹中。我有一个名为listAction的动作,用于列出所有成就。所以我对控制器的文件夹结构是
AppBundle>控制器>注册> AchievementController
我使用名为list.html.twig的文件列出所有的成就。我打算使用渲染控制器方法在另一个名为new.html.twig的树枝上渲染listAction。我的树枝放在
AppBundle>资源>意见>注册>成就> list.html.twig和
AppBundle>资源>意见>注册>成就> new.html.twig。
我的问题是当我使用渲染控制器方法时出现错误
"在AppBundle:注册/成就:new.html中呈现模板("注意:未定义的偏移:1")期间抛出异常。树枝"
我搜索了很多,但是每个帖子都告诉我这样做(我相信),但不行。我被困在那里。我附上了我的动作和树枝。我想设置一些配置吗?我做错了什么?我在其他项目中检查相同,它工作正常。所以我很困惑。 (当我使用文件夹结构AppBundle&gt; Controller&gt; AchievementController并为此更改代码时,它工作正常。只是感觉像是一个逃避斜线问题。但我没有任何方法来解决它。)< / p>
new.html.twig
{{ render(controller('AppBundle:Registration/Achievement:list')) }}
的listAction
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('AppBundle:Registration\Achievement')->findAll();
return $this->render('AppBundle:Registration/Achievement:list.html.twig', array(
'entities' => $entities,
));
list.html.twig
{% if entities %}
--------
--------
{% endif %}
感谢您的每一个答案。
我使用yml方法生成bundle。 我在这里附上我的动作和控制器。 (删除了控制器中的其他操作)
<?php
namespace AppBundle\Controller\Registration;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use AppBundle\Entity\Registration\Achievement;
use AppBundle\Form\Registration\AchievementType;
class AchievementController extends Controller {
public function listAction() {
$em = $this->getDoctrine()->getManager();
$entities = $em->getRepository('AppBundle:Registration\Achievement')->findAll();
return $this->render('AppBundle:Registration/Achievement:list.html.twig', array(
'entities' => $entities,
));
}
}