Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii2 Pjax和资产组合_Php_Yii_Yii2 - Fatal编程技术网

Php Yii2 Pjax和资产组合

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);

我正在编写一个小部件,它使用Pjax向表单中添加字段。为了使用YiiActiveForm js添加验证规则,我通过从表单属性获取规则并使用以下方法分配规则,动态构建规则:

$('#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来解决这个问题