Phalcon伏特包括另一伏特

时间:2015-05-12 06:29:19

标签: php phalcon volt

所以我有这个伏特码:

视图/管理员/ index.volt

{{ content() }}
{% set user = session.get('user') %}

<br />
<div class="row">
    <div class="col-xs-12 col-md-12 col-lg-12">
    <div class="panel panel-default">
        <div class="panel-heading">
            <a data-toggle="collapse" href="#container_userForm">
                <span class="glyphicon glyphicon-asterisk"></span>
                <b style="color: green;">New user</b>
            </a>
        </div>
        <div id="container_userForm" class="panel-collapse collapse">
            <div class="panel-body">
                {% include "administrator/" ~ user['role'] ~ "-form-user.volt" %}
            </div>      <!-- end panel body -->
        </div>
    </div>
    </div>
</div> <!-- end row -->

视图/管理员/主持人外形user.volt 存在并有一些内容。

但是当我运行代码时,我有这个错误

View '/var/www/html/phalcon-dash/app/config/../../app/views/administrator/moderator-form-user.volt' was not found in the views directory

我取出user['role']并使用{% include "administrator/moderator-form-user.volt" %},它正常工作(用户[&#39;角色&#39;] =&#39;主持人&#39;)

任何人都可以向我解释为什么会发生这种情况以及如何解决这个问题,我将来需要实施更多的角色,而且我不希望在伏特中有多个if-else

更新

这就是问题的答案

Volt not including file if path is concatenated

2 个答案:

答案 0 :(得分:1)

你尝试过部分吗? {{ partial("administrator/" ~ user['role'] ~ "-form-user") }}

我猜测视图目录不对。你能看一下吗?

从您的控制器,您可以尝试这个来获取您的视图目录; $this->view->getViewsDir()

答案 1 :(得分:0)

尝试使用斜杠。您的include文件可能会在“ administrator”文件夹中查找index.volt所在的文件夹“ administrator”。

{% include "/administrator/" ~ user['role'] ~ "-form-user.volt" %}