Phalcon 视图未加载

Phalcon view not loaded

我正在尝试在 PhalconPHP (v 2.0.13) 中加载模板,但即使是最简单的示例似乎也无法正常工作。在此示例中,我试图访问 http://www.mysite.dev.fb/forms/。这是我的路由器:

$router->add(
    '/forms/',
    [
            "namespace" => "Render\Controller",
            "controller" => "index",
            "action" => "forms",
    ],
    ['GET']

);

路由有效,或者至少达到了操作中的代码(vardumps 等)。

这是我的控制器动作变体。

变体 1

public function formsAction()
{
}

在这种情况下,应该加载位于 app/views/index/forms.volt 的模板(我有一个扩展名为 .phtml 的文件副本,用于调试目的),对吧?错误,显示空白屏幕,错误日志中没有错误。

变体 2

然后,我尝试选择视图,就像这样:

$this->view->setViewsDir(__DIR__ . '/../views/');
$this->view->pick('forms/contact');

文件 app/views/forms/contact.volt 也存在,具有完全权限。 Vardumping $this->view->getContent() returns null 结果又是一个没有任何错误的空白屏幕。

变体 3

绝望地,我尝试直接渲染模板(在本例中我使用默认的 Phalcon index/index 模板),如下所示:

$this->view->start();
$this->view->render('index', 'index'); //Pass a controller/action as parameters if required
$this->view->finish();

唯一的区别是现在 vardumping $this->view->getContent() returns 一个空字符串,而不是 null.

好像自动渲染被禁用了,但是下面这行 returns 错误(它应该如此):

var_dump($this->view->isDisabled());

我没主意了,有人能帮忙吗?如果我忘记包含某些内容,请回复,我会包含它。

您一定要检查 PHP 日志中是否有 PHP 错误。另外我怀疑你的伏特声明可能是错误的。这是在我使用的服务中声明依赖项可注入视图组件的工作示例:

$di->setShared('view', function () use ($di,$config) {
    $view = new View();
    $view->setViewsDir($config->application->viewsDir); // path to directory with views, loaded from config in this case   
    $view->registerEngines(array(
        '.volt' => function ($view, $di) use ($di, $config) {
            $volt = new VoltEngine($view, $di); 
            $volt->setOptions(array(
                'compiledPath' => $config->application->cacheDir, // path to cache dir, loaded from config in this case
                'compiledSeparator' => '_'
            ));          
            return $volt;
        },
        '.phtml' => 'Phalcon\Mvc\View\Engine\Php'
    ));
    return $view;
});

确保您的网络服务器有权读取视图和 R/W 缓存目录的权限。希望对你有所帮助