在树枝模板中嵌入服务

时间:2011-11-25 09:07:25

标签: symfony twig

我使用控制器作为服务,并尝试使用以下语法将这些控制器嵌入到twig模板中:

{% render 'my_controller:thisAction' %}
{% render 'my_controller2:this2Action' %}
{% render 'my_controller3:this3Action' %}

问题是,不是正确解析,只有第一个渲染语句能够渲染模板而后面的模板不能。

为什么会出现此问题的任何建议?

1 个答案:

答案 0 :(得分:0)

确保遵守命名约定。而且您不需要您的控制器作为服务。控制器旨在获取Request并返回Response

想象一下,你有一个名为Default的控制器。

namespace Renoir\SiteBundle\Controller;

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

class DefaultController extends Controller
{

    // ...

    public function randomNameRenderAction()
    {
       // Do some logic
    }

}

在视图中,您可以使用

进行调用
{% render 'RenoirSiteBundle:Default:randomNameRender' %}