Php Yii2 Pjax和资产组合
我正在编写一个小部件,它使用Pjax向表单中添加字段。为了使用YiiActiveForm js添加验证规则,我通过从表单属性获取规则并使用以下方法分配规则,动态构建规则:Php Yii2 Pjax和资产组合,php,yii,yii2,Php,Yii,Yii2,我正在编写一个小部件,它使用Pjax向表单中添加字段。为了使用YiiActiveForm js添加验证规则,我通过从表单属性获取规则并使用以下方法分配规则,动态构建规则: $('#w1').yiiActiveForm('add', attributeRules); 并将它们保存到位于我的运行方法上的我的小部件资产/js/rules.js内的文件中: public function run() { Pjax::begin($this->pjaxOptions);
$('#w1').yiiActiveForm('add', attributeRules);
并将它们保存到位于我的运行方法上的我的小部件资产/js/rules.js内的文件中:
public function run() {
Pjax::begin($this->pjaxOptions);
$fields = $this->_listFields();
$this->_setFormRules();
$view = $this->getView();
FofAsset::register($view);
echo $fields;
Pjax::end();
}
问题是它总是显示rules.js的第一个版本(对于第一个字段),当添加第二个字段时,rules.js只包含第一个字段(添加到页面中的字段)的规则。即使widget/assets/js上的文件对这两个字段都有规则。我已经在我的资产上使用forceCopy和appendTimestamp了
问题是rules.js文件在调用Pjax后没有更新
有什么想法吗?我找到了答案 Pjax不是为了多次加载同一资源而构建的,这就是为什么我的更改不起作用:) 每天我们都学到新东西 我通过使用带registerJs的内联js来解决这个问题