我正在使用控制器作为服务,并尝试使用以下语法将这些控制器嵌入到Twig模板中:
{% render 'my_controller:thisAction' %}
{% render 'my_controller2:this2Action' %}
{% render 'my_controller3:this3Action' %}
问题在于,模板没有被正确地解析,只有第一个渲染语句能够成功渲染模板,后续的则无法正常渲染。
有什么建议可以解决这个问题吗?
请确保遵守命名规范。您不需要将控制器设置为服务。控制器的作用是获取一个请求(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' %}
php app/console container:debug
并检查所有服务 ID 是否存在。 - Matt