@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); ?>
  • Вопрос задан
  • 3131 просмотр
Пригласить эксперта
Ответы на вопрос 1
@maxyc_webber
Web-программист
не по теме.
какой то тихий ужас. зачем так жизнь себе усложняете сторонними шаблонизаторами? пхп как шаблонизатор прекрасен. в связке с yii тем более. если уж шаучили верстака смарти, то пхп ему выучить еще проще
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы