這個問題可能大家遇到的不多。
分析原因
問題出在 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’