2013-10-29 73 views
1

我目前正在忙於一個項目,該項目需要用戶在首次登錄時(並且尚未創建)才能訪問特定頁面以創建配置文件。老實說,我不知道從哪裏開始。我想以很好的方式做到這一點。Yiiframework首次登錄

因此,在短期:

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

問:什麼是一個整潔的方式做到這一點?一個解決方案不會給我在未來的應用程序開發中帶來問題。

回答

1

我建議你使用filters。在每一個地方完成的輪廓neeeded添加以下代碼控制器:

​​

在你的基地控制器(如果你不使用基本控制器,在任何控制器),你需要創建一個名爲completedProfile與simular代碼過濾器:

 
    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')); 
     } 
    }
+0

啊甜,這正是我所期待的!非常感謝! – Shark

0

可能向用戶個人資料數據庫表中添加一個字段,表示他們是否填寫了他們的個人資料信息。像profile_complete。然後,您可以在頁面上進行測試,看看profile_complete是否爲true,如果是,則顯示該頁面,如果不是,則顯示該頁面。