Yiiframework第一次登录

时间:2013-10-29 17:35:44

标签: php yii frameworks

我目前正忙于一个项目,该项目需要用户在首次登录时转到特定页面创建个人资料(尚未创建个人资料)。老实说,我不知道从哪里开始。我想以一种好的方式做到这一点。

简而言之:

User signs up -> logs in -> needs to fill in form before anything else is allowed -> continue to rest of application

问题:这样做的方法是什么?一个解决方案,不会在将来的应用程序开发中给我带来麻烦。

2 个答案:

答案 0 :(得分:1)

我建议您使用filters。在需要完成配置文件的每个控制器中,添加以下代码:

    public function filters() {
        return array(
            'completedProfile + method1, method2, method3', // Replace your actions here
        );
    }

在您的基本控制器中(如果您不在任何控制器中使用基本控制器),您需要使用simular代码创建名为completedProfile的过滤器:

    public function filterCompletedProfile($filterChain) {
        $criteria = new CDBCriteria(array(
            'condition' => 'id = :id AND firstname IS NOT NULL AND lastname IS NOT NULL',
            'params' => array(':id' => Yii::app()->user->getId())
        ));
        $count = User::model()->count($criteria);

        if ($count == 1) {
            $filterChain->run();
        } else {
            $this->redirect(array('user/profile'));
        }
    }

答案 1 :(得分:0)

可能会在用户个人资料数据库表中添加一个字段,表示他们是否填写了他们的个人资料信息。像profile_complete这样的东西。然后,您可以在页面上进行测试以查看profile_complete是否为真,如果是,则显示页面,如果没有则显示该页面。