我有2个不同的表user
和organiser
,我正在尝试为这两个用户创建2个不同的登录信息。
我能够轻松签名并在数据库中获取记录但在保存记录后我在下面的代码行中得到错误
if ($user = $model->signup()) {
if (Yii::$app->getUser()->login($user)) { //yii\web\IdentityInterface error
return $this->goHome();
}
}
以下是我的configuration
模块
'components' => [
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
'identityCookie' => [
'name' => '_frontendOrganiser', // unique for frontend
],
],
'users' => [
'class' => 'yii\web\User',
'identityClass' => 'common\models\Users',
'enableAutoLogin' => false,
'enableSession' => true,
'identityCookie' => [
'name' => '_frontendUser', // unique for frontend
],
],
'session' => [
'name' => 'PHPFRONTSESSID',
'savePath' => sys_get_temp_dir(),
],
]
所以我在这里做错了什么?我是否需要为不同的模块创建任何其他界面或提供不同的界面?
我必须这样做,因为organiser
表使用password_hash
技术登录我的user
表来自另一个项目的用户,他们使用md5
技术,所以我不得不为两个用户创建单独的模块。
传递给yii \ web \ User :: login()的参数1必须是yii \ web \ IdentityInterface的实例,公共\ models \ Users的实例,在C:\ xampp \ htdocs \ project \ frontend \中调用在第202行的controllers \ SiteController.php并定义了
确切的错误陈述如上所述。
答案 0 :(得分:0)
我认为您的用户模型没有正确实现Identity接口。
尝试检查您的数据模型(在您的数据库中)这必须包含接口的所有字段管理托架。
确保用户正确实现了Identity Interface。 并正确地将接口方法与您的模型映射..
请参阅此http://www.yiiframework.com/doc-2.0/yii-web-identityinterface.html
的界面文档