symfony web调试工具栏

时间:2013-10-02 21:56:00

标签: php symfony

当我访问http://localhost/web/app_dev.php时,我得到了一个非常好的Web调试工具栏,但它并没有出现在" custom"控制器。

怎么做调试工具栏在控制器呈现的视图中可见?

这是我使用的控制器的一个例子

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));
    }
}

4 个答案:

答案 0 :(得分:51)

工具栏通过查找终止< / body>来在页面中插入自身在您生成的页面上标记。

如果您没有< / body>页面中的标签不会显示工具栏。

您还需要通过app_dev.php访问该页面来确保您使用开发模式,例如

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

答案 1 :(得分:4)

如果它没有像您所说的那样出现在“自定义”控制器中,但在其他控制器中出现,则可能包含无效的HTML代码。

如果控制器呈现HTML,Symfony2仅显示工具栏。如果它无效,它就无法知道它的HTML。

原因:如果您的控制器返回其他类型(例如XML或JSON),添加工具栏不仅没有用,而且还会破坏。

解决方案:检查您的HTML代码并修复其中的错误,工具栏会出现

答案 2 :(得分:0)

为了让渲染视图中显示Symfony2调试工具栏,您必须通过与启用了工具栏的环境对应的前端控制器。

如果您使用的是标准发行版,则默认情况下只启用“dev”环境。因此,您必须使用app_dev.php前端控制器。

答案 3 :(得分:0)

对我来说问题是我的de meta标签指向我的prod环境。

然后在dev

中的template :: base.html.twig中
<!--<base href="http://www.exemple.com" />-->

in prod:

<base href="http://www.exemple.com" />