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

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

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

4

9 回答 9

13

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

{{ content() }}

您可以在代码的任何位置使用 php 的 var_dump:

var_dump($var);exit;

出口; 是停止这条线之后发生的任何事情。

您还可以使用 volt 函数将 vars 转储到 volt 模板中:

{{dump(var)}}

dump() 与 var_dump() 相同 以下是一些更有用的 volt 函数:

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

于 2014-02-02T07:39:50.877 回答
5

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

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

或伏特:

{{ content() }}
于 2013-01-26T19:54:03.700 回答
3

好的,谢谢twistedxtra的提示!

就我而言,我使用 Twig。为了解决我的问题,我向 Twig 添加了一项功能:

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

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

现在它可以在模板中使用:

{{ content()|raw }}
于 2013-01-26T20:39:09.057 回答
2

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

1 - 你可以写 var_dump($custom); 然后放 die(); 这样之后就无法执行任何代码。

  1. 您可以编写 echo $custom 来执行 $custom 的值。但是你必须在它之后停止脚本执行。

有时可能会发生代码已编写但由于模板或视图文件执行,它会覆盖您的代码。您必须检查源代码是否打印了您在控制器中编写的标签上方的任何内容。

愿这对你有帮助........:)

于 2013-01-26T10:22:06.067 回答
2

我知道我来晚了,但是,打电话

exit;

在你的 var_dump() 之后

于 2014-01-25T19:29:15.397 回答
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);
    }
}
于 2014-02-28T23:14:57.540 回答
0

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

https://gist.github.com/4690638

并使用:

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

这是我的叉子;-)

于 2013-02-01T10:59:15.777 回答
0

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

于 2014-01-25T00:28:46.227 回答
0

为什么不使用好旧的

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

打印出漂亮有序的数组。必须从控制器和视图中添加它。在 Controller 的情况下,输出放置在 Controller 的视图之上。

于 2014-05-12T22:43:51.303 回答