поэтому у меня есть этот код вольт:
просмотров / администратор / 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" %}
работает нормально (user [‘role’] = ‘moderator’)
Может ли кто-нибудь объяснить мне, почему это происходит и как обойти это, мне нужно будет реализовать больше ролей в будущем, и я не хочу иметь несколько if-else в вольт
Обновить
Это ответ на проблему
Вы пробовали это с частичным?
{{ partial("administrator/" ~ user['role'] ~ "-form-user") }}
Я предполагаю, что что-то не так с каталогом просмотров. Не могли бы вы это проверить?
С вашего контроллера вы можете попробовать это, чтобы получить каталог представлений;
$this->view->getViewsDir()
Попробуйте использовать косую черту. Ваше включение, вероятно, ищет папку «administrator» внутри папки «administrator», где находится index.volt.
{% include "/administrator/" ~ user['role'] ~ "-form-user.volt" %}