Phalcon,如何在控制器和视图中获得输出


Phalcon, how to get the output in both controller and view?

如果我添加视图文件"索引。,只显示视图

如果我想在控制器中显示echo,我必须删除"index"。或禁用控制器中的视图

public function indexAction()
{
    $this->view->disable();
    echo "this is conntroller";
}

如何在控制器和视图中显示输出?

下面的代码将显示echo的输出,然后呈现视图:

<?php
class TestController extends 'Phalcon'Mvc'Controller
{
    public function indexAction()
    {
        echo 'hello';
        $view = new 'Phalcon'Mvc'View();
        $view->setViewsDir(APPLICATION_PATH . '/app/views/');
        $view->start();
        $view->render('test', 'index');
        $view->finish();
        echo $view->getContent();
        die();
    }
}

或者把view service放到DI中:

$di->set('view', function(){
    $view = new 'Phalcon'Mvc'View();
    $view->setViewsDir(APPLICATION_PATH . '/app/views/');
    return $view;
}, true);

然后在controller:

中使用
<?php
class TestController extends 'Phalcon'Mvc'Controller
{
    public function indexAction()
    {
        echo 'hello';
        $this->view->start();
        $this->view->render('test', 'index');
        $this->view->finish();
        echo $this->view->getContent();
        die();
    }
}

注:但是我不推荐这种方法。更好的方法是在视图中分配变量并显示它们。

try

public function indexAction()
{
    $this->view->disable();
    echo "this is conntroller";
    die; // or exit;
}

希望有所帮助

我认为控制器不应该显示东西。所有的动作都应该放在控制器中,并显示在视图中。

FirePHP将允许您从PHP(控制器,任何地方)转储并在浏览器的javascript控制台日志中查看结果。唯一的问题是你必须使用ob_start(),这会在调试期间破坏你的重定向。

特别适合在浏览器中不显示新渲染页面的AJAX调试。

我只是把它包含在我的依赖注入中,然后可以像使用var_dump()一样使用$this->logger->info()

    /**
    * FirePHP Logger for dumping into console.
    */
    $di->set('logger', function() {
        //$logger = new 'Phalcon'Logger'Adapter'Firephp('debug', null);
        require_once(__DIR__ . '/../../libs/firephp-core/lib/FirePHPCore/FirePHP.class.php');
        ob_start();
        $logger = 'FirePHP::getInstance(true);
        $logger->setEnabled(true); // TODO: Config to disable.
        return $logger;
    }, true);

如果问题更多的是关于如何在生产环境中从控制器和视图输出。简短的回答是:你不这样做,这样做会否定使用MVC框架来组织和分离这些不同类型的东西。

注意:从孵化器中注释掉费尔康适配器,更容易让类直接在我的情况下工作。