当我访问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));
}
}
答案 0 :(得分:51)
工具栏通过查找终止< / body>来在页面中插入自身在您生成的页面上标记。
如果您没有< / body>页面中的标签不会显示工具栏。
您还需要通过app_dev.php访问该页面来确保您使用开发模式,例如
答案 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" />