2

所以我有这个伏特代码:

意见/管理员/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 -->

views/administrator/moderator-form-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" %},它可以正常工作(user['role'] = 'moderator')

任何人都可以向我解释它为什么会发生以及如何解决它,我将来需要实现更多角色,而且我不希望有多个 if-else in volt

更新

这是问题的答案

如果路径被连接,Volt 不包括文件

4

2 回答 2

1

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

我猜views目录有些不对劲。你也可以检查一下吗?

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

于 2015-05-12T07:51:01.843 回答
0

尝试使用斜线。您的包含可能会在 index.volt 所在的文件夹“管理员”中查找文件夹“管理员”。

{% include "/administrator/" ~ user['role'] ~ "-form-user.volt" %}
于 2018-08-10T14:28:06.313 回答