缺少_fragment - 嵌入式控制器

时间:2016-02-01 16:37:46

标签: symfony templates

我遵循了这篇文章:

http://symfony.com/doc/current/book/templating.html#embedding-controllers

我收到了这些错误:

  

InvalidArgumentException:Controller   " CompanyBundle:默认:displayTimeline"对于URI" / _ fragment"不是   调用

     

Twig_Error_Runtime:渲染期​​间抛出异常   模板(" Controller" CompanyBundle:默认:displayTimeline" for   URI" / _片段"是不可调用的。")in   CompanyBundle:默认:第26行的manage.html.twig。

我添加了以下内容:

# app/config/config.yml
framework:
    # ...
    fragments: { path: /_fragment }

我错过了什么?文章中的控制器看起来像任何其他控制器?我刷新了缓存并重新加载。

编辑|用"动作"添加到控制器方法和模板调用。

我的模板代码:

{{ render(controller('CompanyBundle:Default:displayTimelineAction')) }}

我的控制器代码:

class DefaultController extends Controller
{
    public function displayTimelineAction(Request $request)
    {
      $content = null;
      return $this->render('default/timeline.html.twig', $content);
    }
}

1 个答案:

答案 0 :(得分:1)

Cerad是正确的 - 更具体地说,修复方法是更改​​模板:

{{ render(controller('CompanyBundle:Default:displayTimeline')) }}

和控制器:

class DefaultController extends Controller
{
    public function displayTimelineAction(Request $request)
    {
      $content = array();
      return $this->render('CompanyBundle:Default:timeline.html.twig', $content);
    }
}