我使用控制器作为服务,并尝试使用以下语法将这些控制器嵌入到twig模板中:
{% render 'my_controller:thisAction' %}
{% render 'my_controller2:this2Action' %}
{% render 'my_controller3:this3Action' %}
问题是,不是正确解析,只有第一个渲染语句能够渲染模板而后面的模板不能。
为什么会出现此问题的任何建议?
答案 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' %}