我在页面上有一个表单,我正在使用页面缓存,我需要动态呈现表单的顶部,以便每次都更改csrf标记,但是当我将此代码放入
时<?php $this->renderDynamic('return $form = ActiveForm::begin();'); ?>
我在此行收到此错误Call to a member function field() on a non-object
<?= $form->field($model, $NBAteam['id'])->checkBox(['label' => NULL, 'data-seed' => $NBAteam['seed']]) ?>
我也在Apache错误日志Class 'ActiveForm' not found
答案 0 :(得分:0)
我找到了一种解决方法,renderDynamic
似乎与Yii小部件无关。所以我在从缓存加载页面后使用jQuery来修改csrf标记的值。
$this->registerJs("$(document).ready(function(){
$('input[name=_csrf]').val('".$this->renderDynamic('return Yii::$app->request->csrfToken;')."');
});", View::POS_END);