查看: 1579|回复: 0

[PHP学习] YII2.0 jQuery(…).activeform is not a function in 终极解决方案

发表于 2018-3-14 08:00:03

今天终于把困扰我很久的报错解决掉了。
首先找到 vendor\yiisoft\yii2\web\JqueryAsset.php文件

  1. <?php
  2. namespace yii\web;
  3. class JqueryAsset extends AssetBundle
  4. {
  5. public $sourcePath = '@bower/jquery/dist';
  6. /* public $js = [
  7. 'jquery.js',
  8. ];*/
  9. }
复制代码

把这段注释掉,其实不注释也不要紧啦~只不过页面上会多加载一次jquery.js,下面才是重要的
最重要的来了
在同级目录下 也就是 vendor\yiisoft\yii2\web\YiiAsset.php

  1. class YiiAsset extends AssetBundle
  2. {
  3. public $sourcePath = '@yii/assets';
  4. public $js = [
  5. 'yii.js',
  6. ];
  7. public $depends = [
  8. ** 'yii\web\JqueryAsset',**
  9. ];
  10. }
复制代码

可以看到这有个依赖 ,这个依赖的就是 刚刚上面的JqueryAsset的命名空间~现在只要把这个命名空间改掉就好了,只要改这一个地方就好了,因为yii.activeForm.js应该是依赖的yii.js的命名空间 ~ 虽然我全局也没搜到yii.activeForm.js在哪里出现过,反正不要管他就行了,接下来把它

  1. public $depends = [
  2. 'app\assets\AppAsset',
  3. ];
复制代码

改成这样就行了 依赖在 web同级目录下的 assets/AppAsset.php中

  1. <?php
  2. namespace app\assets;
  3. use yii\web\AssetBundle;
  4. class AppAsset extends AssetBundle
  5. {
  6. public $basePath = '@webroot';
  7. public $baseUrl = '@web';
  8. public $css = [
  9. 'css/bootstrap.min.css',
  10. 'css/iconfont.css',
  11. 'css/bootsnav.css',
  12. 'css/style.css',
  13. ];
  14. public $js = [
  15. 'js/vendor/jquery-1.11.2.min.js',
  16. 'js/vendor/bootstrap.min.js',
  17. 'js/comm.js?v1',
  18. ];
  19. public static function addScript($view, $jsfile)
  20. {
  21. $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'app\assets\AppAsset']);
  22. }
  23. //定义按需加载css方法,注意加载顺序在最后
  24. public static function addCss($view, $cssfile)
  25. {
  26. $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'app\assets\AppAsset']);
  27. }
  28. }
  29. ?>
复制代码

这是我的appasset.php就是这样的了~现在打开页面就不会再看见讨厌的jQuery(…).activeform is not a function 了



回复

使用道具 举报