12

当我访问时,http://localhost/web/app_dev.php我得到了一个非常漂亮的 Web 调试工具栏,但它没有出现在“自定义”控制器呈现的视图中。

如何使调试工具栏在控制器呈现的视图中可见?

这是我使用的控制器的示例

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

4 回答 4

51

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

如果您的页面中没有 </body> 标记,则不会出现工具栏。

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

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

于 2013-10-03T00:18:22.300 回答
4

如果它没有像您所说的那样出现在“自定义”控制器中,而是出现在其他控制器中,那么您可能有无效的 html 代码。

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

原因:如果您的控制器返回一些其他类型(例如 XML 或 JSON),则在其中添加工具栏不仅无用而且会破坏东西。

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

于 2013-10-02T23:25:25.173 回答
0

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

如果您使用的是标准发行版,则只有“开发”环境默认启用它。因此,您必须使用app_dev.php前置控制器。

于 2013-10-02T22:21:04.840 回答
0

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

然后在模板 ::base.html.twig 在 dev

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

在产品中:

<base href="http://www.exemple.com" />
于 2015-01-15T12:02:53.660 回答