如何直接从控制器使用var_dump输出?

时间:2013-01-26 09:31:48

标签: phalcon

class IndexController extends \Phalcon\Mvc\Controller
{
    public function indexAction()
    {
        $custom = "Custom variable";
        var_dump($custom);
    }
}

如何不使用模板中的变量显示结果?

P.S。 Echo功能的结果也被抑制。我知道这是错误的方法,但它是调试变量的快速方法。

9 个答案:

答案 0 :(得分:12)

如果您没有看到控制器的输出,请检查您的模板文件中是否有此行:

{{ content() }}

你可以在代码的任何地方使用php的var_dump:

var_dump($var);exit;

出口;是阻止在这一行之后发生的任何事情。

你也可以使用伏特功能将你的变量转储到伏特的模板中:

{{dump(var)}}

dump()与var_dump()相同 这里有一些更有用的伏特函数:

http://docs.phalconphp.com/en/latest/reference/volt.html#functions

答案 1 :(得分:5)

控制器中存在隐式渲染级别,在渲染的第一个视图中,必须调用getContent()方法:

<div class="controller-output"><?php echo $this->getContent(); ?></div>

或者在Volt:

{{ content() }}

答案 2 :(得分:3)

好的,小费twistedxtra

在我的情况下,我使用Twig。 为了解决我的问题,我为Twig添加了一项功能:

$function = new \Twig_SimpleFunction('content', function() use($view) {
    return $view->getContent();
});

$this->_twig->addFunction($function);

现在可以在模板中使用:

{{ content()|raw }}

答案 3 :(得分:2)

我知道我有点晚了,但是,请致电

exit;

在你的var_dump()

之后

答案 4 :(得分:2)

您可以完全禁用操作中的视图:

class IndexController extends \Phalcon\Mvc\Controller
{
    public function indexAction()
    {
        $custom = "Custom variable";
        $this->view->disable();
        var_dump($custom);

    }
}

甚至使用自己的调试方法:

class IndexController extends \Phalcon\Mvc\Controller
{
    public function indexAction()
    {
        $custom = "Custom variable";
        $this->debug($custom);

    }

    public function debug($data)
    {
        $this->view->disable();
        var_dump($data);
    }
}

答案 5 :(得分:1)

根据您的上述代码,我了解您需要执行$ custom值。 有以下两种方式

1 - 你可以写var_dump($ custom);然后把die();所以在没有代码可以执行之后。

  1. 您可以编写echo $ custom,以执行$ custom的值。但是你必须在它之后停止执行脚本。
  2. 有时可能会发生代码编写,但由于模板或视图文件的执行,它会覆盖您的代码。您必须检查源代码是否在您在控制器中写入的标签上方打印了任何内容。

    愿这会帮助你........:)

答案 6 :(得分:0)

Phalcon \ Mvc \ View \ Engine \ Twig()更改为:

https://gist.github.com/4690638

并使用:

{{condent()|raw}}
{{linkTo('#', 'title')|raw}}

这是我的叉子; - )

答案 7 :(得分:0)

更简单的方法是在使用伏特时将“$ this-&gt; view-&gt; disable()”设置在var_dump表达式的正上方。也许这也适用于其他模板引擎。

答案 8 :(得分:0)

为什么不使用好旧的

echo "<pre>" . print_r($custom,TRUE) . "</pre>";

打印精美有序的数组。必须添加它来自控制器和视图。在Controller的情况下,输出放在Controller的视图之上。