【问题标题】:print statement in symfony在 symfony 中打印语句
【发布时间】:2017-08-09 10:49:30
【问题描述】:

我是 symfony 的新手,我正在寻找一种“打印声明”。在我只使用 java 编程之前,我可以查看并跟踪 IDE 内“控制台输出”上的代码。基本上我是用打印系统出来的

什么可以等同于 symfony。例如

$user = $this->getDoctrine()
        ->getRepository('AppBundle:User')
        ->findOneById($id);

我可以这样做吗:

echo $user,在控制器内部?并在某处查看结果

或者我应该总是渲染 $user:

return $this->render('FOSUserBundle::edit.html.twig', array(
        'user' => $user,
        'form' => $form->createView()
    ));

那我只能在edit.html上看到结果

这是唯一的方法吗? (使用渲染)

稍后,我想使用 PHPUnit,但现在我想从基础开始

谢谢!

【问题讨论】:

  • var_dump($user->toArray()); 应该可以工作。

标签: php symfony


【解决方案1】:

是的,您可以:

    public function fAction(Request $request){

    // ...

    $user = $this->getDoctrine()
          ->getRepository('AppBundle:User')
          ->findOneById($id);

    var_dump($user); exit;

    // or ...
    exit(\Doctrine\Common\Util\Debug::dump($user));

    // or if you've installed VarDumper component (see below):
    dump($user, $anotherUser, $request);
    exit;

    // ...

    }

尝试安装VarDumper 组件,并使用它的dump() 函数。

【讨论】:

  • 感谢您的建议!
  • 我安装了 VarDumper 并尝试了转储功能,但没有成功。我使用作曲家安装,并在我的控制器中添加了使用 Symfony\VarDumper;但不显示信息。在 AppKernel 下注册了 "if" $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();但未在 $bundles = array( 中注册
  • 你安装了什么版本的 Symfony? 2.6, 2.7, ... ? (尝试使用 php app/console -V )
  • 我已经更新了我的答案。尝试添加退出;转储(...)函数后
【解决方案2】:

有很多方法可以在脚本中间打印变量以进行调试。 其中之一是使用var_dump()

以下代码将转储您的变量并终止脚本。

var_dump($users);
die();

【讨论】:

  • 我试过了,但我还有一些问题。我在函数里面加了,每次去路由/list都会调用这个函数,函数渲染到html页面list.html.twig哪里会显示结果(var_dump($users)?我应该刷新html 页面?另外,当我刷新页面 (list.html.twig) 时,我的浏览器冻结,我无法执行任何操作,我需要重新启动浏览器
猜你喜欢
  • 1970-01-01
  • 2013-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多