我将 Controller 用作服务,并尝试使用以下语法将这些 Controller 嵌入到 Twig 模板中:
{% render 'my_controller:thisAction' %}
{% render 'my_controller2:this2Action' %}
{% render 'my_controller3:this3Action' %}
问题是,只有第一个 render 语句能够渲染模板,而不是正确解析,而后面的则不能。
为什么会出现此问题的任何建议?
最佳答案
只需确保遵守命名约定即可。而且你不需要你的 Controller 成为服务。 Controller 旨在获取 Request
并返回 Response
.
假设您有一个名为 Default 的 Controller 。
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
}
}
在 View 中,您可以使用调用
{% render 'RenoirSiteBundle:Default:randomNameRender' %}
关于symfony - 在 Twig 模板中嵌入服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8266775/