@Bombadile

Как исправить ошибку Undefined index: ActiveForm в скомпилированном шаблоне Smarty на Yii2?

В шаблоне Smarty выводится форма:
{use class='yii\widgets\ActiveForm' type='block'}
{ActiveForm assign='form' id='login-form' action='/form-handler' options=['class' => 'form-horizontal']}
    {$form->field($model, 'firstName')}
    <div class="form-group">
        <div class="col-lg-offset-1 col-lg-11">
            <input type="submit" value="Login" class="btn btn-primary" />
        </div>
    </div>
{/ActiveForm}


Файл шаблона Smarty сохраняется. Эта страница сайта в браузере обновляется - все нормально. Но при повторном обновлении страницы возникает ошибка: Undefined index: ActiveForm. То есть при повторном обращении к этой странице код берется из скомпилированного файла шаблона, в котором следующий код:

<?php
        $_smarty_tpl->getGlobal('_viewRenderer')->widgets['blocks']['ActiveForm'] = 'yii\widgets\ActiveForm';
        try {
          $_smarty_tpl->registerPlugin('block', 'ActiveForm', [$_smarty_tpl->getGlobal('_viewRenderer'), '_widget_block__ActiveForm']);
        } catch (SmartyException $e) {
          /* Ignore already registered exception during first execution after compilation */
        }
        ?>   
        <?php $_smarty_tpl->smarty->_tag_stack[] = array('ActiveForm', array('assign' => 'form', 'id' => 'login-form', 'action' => '/backend/login/', 'options' => array('class' => 'uk-panel uk-panel-box uk-form')));
        $_block_repeat = true;
        echo $_smarty_tpl->smarty->registered_plugins['block']['ActiveForm'][0][0]->_widget_block__ActiveForm(array('assign' => 'form', 'id' => 'login-form', 'action' => '/backend/login/2', 'options' => array('class' => 'uk-panel uk-panel-box uk-form')), null, $_smarty_tpl, $_block_repeat);
        while ($_block_repeat) {
          ob_start(); ?>

      <?php echo $_smarty_tpl->tpl_vars['form']->value->field($_smarty_tpl->tpl_vars['model']->value, 'username')->textInput(array('placeholder' => $_smarty_tpl->tpl_vars['model']->value->getAttributeLabel('username'), 'class' => 'form-group5'))->label(false); ?>

      <?php echo $_smarty_tpl->tpl_vars['form']->value->field($_smarty_tpl->tpl_vars['model']->value, 'password')->passwordInput(array('placeholder' => $_smarty_tpl->tpl_vars['model']->value->getAttributeLabel('password')))->label(false); ?>
  • Вопрос задан
  • 3117 просмотров
Пригласить эксперта
Ответы на вопрос 1
@maxyc_webber
Web-программист
не по теме.
какой то тихий ужас. зачем так жизнь себе усложняете сторонними шаблонизаторами? пхп как шаблонизатор прекрасен. в связке с yii тем более. если уж шаучили верстака смарти, то пхп ему выучить еще проще
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
03 июл. 2022, в 11:11
250 руб./за проект
03 июл. 2022, в 10:56
500 руб./за проект
03 июл. 2022, в 10:37
4000 руб./за проект