这个问题可能大家遇到的不多。
分析原因
问题出在 config/web.php 这个配置文件里面
'components' => [ ..... 'user' => [ 'identityClass' => 'app\models\User', 'enableAutoLogin' => true, ], ],
在这个文件里我们配置了user 所以默认他会使用我们配置过的user 但是我们自己建的model里面并没有声明它想要的 find() 方法
追踪代码可以发现经常用到这样一段代码
如果配置了user 用的是 你自己定义的 model 类。 如果没有定义,使用它自己定义的 mdm\admin\models\User
解决方法
在 vendor\mdmsoft\yii2-admin (yii2-admin插件的位置) 里面搜索 mdm\admin\models\User
凡是 mdm\admin\models\User 前面带三目运算的我们将判断去掉,直接将值赋值成为 mdm\admin\models\User
操作
将 Yii::$app->getUser()->identityClass ? : 'mdm\admin\models\User' 替换成 ‘mdm\admin\models\User’
将 $this->userClassName ? : 'mdm\admin\models\User' 替换成 ‘mdm\admin\models\User’