【发布时间】:2021-03-10 06:50:03
【问题描述】:
我是 Stack Overflow 和编程的新手,而且我的英语不好,如果我没有正确提问,请提前道歉。
我正在学习如何使用 Symfony,但我无法让 dump() 函数正常工作。我按照以下说明进行操作: https://symfony.com/doc/current/components/var_dumper.html
我使用 composer 安装了 VarDumper 组件和调试包:
composer require --dev symfony/debug-bundle
composer require --dev symfony/var-dumper
然后我在我的应用控制器中使用了 dump() 以便在我提交表单时显示 HTTP 请求:
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
class BlogController extends AbstractController
{
/**
* @Route("/blog/new", name="blog_create")
*/
public function blog_create(Request $request): Response
{
dump($request);
return $this->render('blog/create.html.twig',['request'=>$request]);
}
}
dump() 应该出现在调试工具栏中。相反,当我调用“blog/new”时,我只是正常显示了表单页面,而我的调试工具栏没有显示。但是,我知道 VarDumper 组件可以工作,因为我尝试使用转储服务器,并且每次调用“blog/new”时控制台都会向我显示转储结果。我可以在这个转储中找到我的表单内容。
有人知道如何在调试工具栏中显示 dump() 的结果而不破坏它吗?
问候,
神秘
【问题讨论】:
-
我不认为转储请求是个好主意...它可能很大。你到底想甩掉什么?任何特定的变量?
-
只有当你有一个合理有效的 html 页面时,工具栏才会显示。在浏览器中使用 ctrl-u 并验证是否具有预期的 html 头部主体部分。当然,您必须处于开发模式。我还假设您使用的是实际的 Symfony 框架,而不仅仅是一些组件。最后,除非您计划支持旧平台,否则没有理由使用 4.2。 4.4 是长期支持版本。
-
@Cerad html是有效的,工具栏只有在我添加行时才会崩溃 dump($request);我使用“symfony -V”来获取版本,输出是“Symfony CLI version v4.21.0 (2020-11-26T16:18:20+0000 - stable)”。当我使用“php bin/console --version”时,我得到“Symfony 5.1.8 (env: dev, debug: true)”。所以我假设一切都井井有条。你怎么看?
-
所以 5.1 是实际的框架版本,这意味着您使用的是最新版本。我假设你也使用'symfony server:start'作为你的开发服务器?我做了一个快速测试,转储 $request 没有问题。也许尝试不将 $request 传递给您的树枝模板。无论如何我都没有理由这样做。
-
还是不行。传递给转储的任何变量都会使工具栏崩溃。 :/我不确定我做对了一切,一切对我来说都是新的。我使用 symfony server:start 作为我的开发服务器,是的。