使用伏特与phalcon有问题

时间:2012-11-21 21:58:04

标签: php phalcon

继承在压力模板中不起作用。

  

Phalcon版本为0.6.1

拥有文件结构:

  • 视图/
    • 索引/
      • 的index.html
    • 布局/
      • main.html中
  • 的index.php

的index.php:

<?php
    $di = new Phalcon\DI\FactoryDefault();
    $di->set('volt', function ($view, $di){
        return new Phalcon\Mvc\View\Engine\Volt($view, $di);
    });

    $view = new \Phalcon\Mvc\View();
    $view->setViewsDir("views/");
    $view->registerEngines(array(
        ".html" => 'volt'
    ));
    $view->setDi($di);
    $view->start();
    $view->render("index", 'index');
    $view->finish();
    echo $view->getContent();

视图/索引/ index.html中

{% extends "layouts/main.html" %}
{% block content %}
    <h2>Index</h2>
{% endblock %}

视图/布局/ main.html中

<h1>Main</h1>
{% block content %}
    Not index
{% endblock %}

当我运行php index.php时,我得到:

  

未捕获的异常'Phalcon \ Mvc \ View \ Exception',消息'扩展模板视图'layouts / main.html'不存在'

1 个答案:

答案 0 :(得分:3)

这是因为应用程序无法在实际路径中找到文件main.html。如果添加它的完整路径,但这样做很不方便。

这样的东西会起作用

{% extends  "../views/layouts/main.html" %}

或者您的应用位于app

之下
{% extends  "../app/views/layouts/main.html" %}

我相信应该有一种方法可以直接从Volt的设置中引用根路径和/或视图路径。这很可能是一个NFR。