Панель инструментов Symfony для веб-отладки

Когда я навещаю http://localhost/web/app_dev.php, я получаю очень приятную панель инструментов веб-отладки, но она не отображается в представлениях, отображаемых "пользовательскими" контроллерами.

Что делать, чтобы панель инструментов отладки отображалась в представлениях, отображаемых контроллерами?

Вот пример контроллера, который я использую

namespace SD\BlogBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class ContactsController extends Controller
{
    public function indexAction()
    {
        $data = 'Lorem ipsum';

        return $this->render('SDBlogBundle:Default:index.html.twig', array('data' => $data));
    }
}

Ответ 1

Панель инструментов вставляет себя в страницы, ища завершающий </body> тег на сгенерированной странице.

Если у вас нет </body> тег на вашей странице, панель инструментов не появится.

Вам также необходимо убедиться, что вы используете режим dev, обратившись к странице через app_dev.php, например.

http://example.com/app_dev.php/hello/world

Ответ 2

Если он не отображается в "настраиваемых" контроллерах, как вы сказали, но появляется в других, у вас, вероятно, есть недопустимый html-код.

Symfony2 показывает только панель инструментов, если ваш контроллер отображает HTML. Если он недействителен, он не может знать его HTML.

Причина. Если ваш контроллер возвращает какой-то другой тип (например, XML или JSON), добавление панели инструментов будет не просто бесполезным, но и сломать материал.

Решение: Проверьте код html и исправьте ошибки в нем, появится панель инструментов

Ответ 3

Чтобы панель инструментов отладки Symfony2 отображалась в ваших визуализированных представлениях, вы должны пройти через фронт-контроллер, соответствующий среде, в которой включена панель инструментов.

Если вы используете стандартный дистрибутив, по умолчанию включена только среда "dev". Поэтому вы должны использовать фронт-контроллер app_dev.php.

Ответ 4

для меня проблема заключалась в том, что у меня был метатег, указывающий на мою среду prod.

то в шаблоне:: base.html.twig в dev

<!--<base href="#" onclick="location.href='http://www.exemple.com'; return false;" />-->

в prod:

<base href="#" onclick="location.href='http://www.exemple.com'; return false;" />