【发布时间】:2021-07-23 16:35:13
【问题描述】:
我正在为我的用户模型使用这个 Yii2 插件
https://yii2-usuario.readthedocs.io/en/latest/
在我的main.php 我有这个。
'user' => [
'class' => Da\User\Module::class,
'enableEmailConfirmation' => true,
'classMap' => [
'User' => 'app\models\user\Model\User',
'SocialNetworkAccount' => 'app\models\user\Model\SocialNetworkAccount',
],
然后在目录models/user/Model我有这个
namespace app\models\user\Model;
use Yii;
use app\models\user\Model\User;
use Da\User\Model\SocialNetworkAccount as BaseClass;
class SocialNetworkAccount extends BaseClass
{
public function connect(User $user)
{
return $this->updateAttributes(
[
'username' => null,
'firstname' => $user->firstname,
'lastname' => $user->lastname,
'email' => null,
'code' => null,
'user_id' => $user->id,
]
);
}
}
但是当我进入我的登录页面时,我得到了这个错误
Declaration of app\models\user\Model\SocialNetworkAccount::connect(app\models\user\Model\User $user) must be compatible with Da\User\Model\SocialNetworkAccount::connect(Da\User\Model\User $user)
我尝试按照这里的教程来覆盖类,但没有运气
https://yii2-usuario.readthedocs.io/en/latest/enhancing-and-overriding/overriding-classes/
我在这里做错了什么?谢谢
更新:
我试过了
public function connect(\Da\User\Model\User $user)
不再出现错误,但现在我注意到它没有添加名字和姓氏
在我的用户模型规则中我有这个
public function rules()
{
return [
...
[['email', 'firstname', 'lastname'], 'safe'],
]
}
【问题讨论】: