Note that there are some explanatory texts on larger screens.

plurals
  1. POSymfony 2.1 kernel.request event cannot override _controller
    primarykey
    data
    text
    <p>I'm trying to send some requests to a specific controller. I'm following Kris Wallsmith's answer here: </p> <p><a href="https://stackoverflow.com/questions/8799623/symfony2-routing-rules-from-database">Symfony2 routing rules from database</a></p> <p>However when I override the request's _controller attribute my template is no longer decorated with the base template.</p> <p>What am I doing wrong?</p> <p>Here's my listener service:</p> <pre class="lang-php prettyprint-override"><code>// src/Acme/DemoBundle/RequestListener.php namespace Acme\DemoBundle; use Symfony\Component\HttpKernel\HttpKernelInterface; use Symfony\Component\HttpKernel\Event\GetResponseEvent; class RequestListener { public function onKernelRequest(GetResponseEvent $event) { if (some logic) { $request = $event-&gt;getRequest(); $request-&gt;attributes-&gt;set('_controller', 'Acme\DemoBundle\Controller\DefaultController::testAction'); } } } </code></pre> <p>Here's my template:</p> <pre><code>{# src/Acme/DemoBundle/Resources/views/Default/test.html.twig #} {% extends '::base.html.twig' %} {% block title %}Test{% endblock %} {% block body %} {{ body | markdown }} {% endblock body %} </code></pre> <p>Here's my controller:</p> <pre class="lang-php prettyprint-override"><code>// src/Acme/DemoBundle/Controller/DefaultController.php /** * @Route("/test") * @Template() */ public function testAction() { return $this-&gt;render('AcmeHelloBundle:Default:test.html.twig', array('body' =&gt; 'test')); } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload