从CUserIdentity调用控制器方法

时间:2014-11-10 13:14:20

标签: php facebook yii facebook-login

我正在使用HybridAuth实现Facebook登录。我的FB配置文件很好,但是我对它怎么做有点困惑。我正在与我的注册用户表进行比较,以检查我是否已经拥有来自FB配置文件的用户电子邮件,如果有,则登录完成时使用存储的帐户,如果没有,我创建一个新的用户帐户并存储它在我的数据库中。 问题是,当我创建一个新用户时,我在我的用户控制器中调用一个方法,如下所示:

UserController::createUserSocialNetwork($userprofile);

Yii不允许我这样做,因为尚未导入控制器文件的类。我知道我可以在我的Yii配置文件中导入控制器类,或者我可以使用扩展Yii::app()->runController的类中的CUserIdentity,我个人倾向于前者,但我不太确定如果他们中的任何一个是正确的方法。所以我的问题是:如何在不影响Yii核心功能的情况下做到这一点?是否在配置中导入控制器文件,违反了Yii遵循的任何设计规则?

1 个答案:

答案 0 :(得分:0)

首先,我强烈建议在Controller Action中处理用户创建而不是UserIdentity。 如果这是不可能的,您可以将逻辑移动到控制器行为或帮助程序类,甚至移动到用户模型(并且所有这些替代选项都不是最佳设计实践)。