yii2中的多个登录表登录时出现IdentityInterface错误

时间:2015-11-11 05:03:39

标签: php yii yii2 yii2-advanced-app yii2-basic-app

我有2个不同的表userorganiser,我正在尝试为这两个用户创建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并定义了

确切的错误陈述如上所述。

1 个答案:

答案 0 :(得分:0)

我认为您的用户模型没有正确实现Identity接口。

尝试检查您的数据模型(在您的数据库中)这必须包含接口的所有字段管理托架。

确保用户正确实现了Identity Interface。 并正确地将接口方法与您的模型映射..

请参阅此http://www.yiiframework.com/doc-2.0/yii-web-identityinterface.html

的界面文档