2014-01-17 24 views
0

im正在處理的應用程序需要根據用戶的偏好在訂單中獲取帖子,如果用戶沒有直接登錄它,則按降序對它們進行排序。如果用戶已登錄應該檢查用戶模型,並從數據庫中獲取首選項,並且應該以與特定用戶的Facebook新聞提要類似的方式獲取帖子。我該如何做?Yii獲得訂單中的特定帖子

if(Yii::app()->user->isGuest) 
      { 
      $criteria=new CDbCriteria(array(
      'order'=>'likes DESC', 
      ));} 
      else{ 
       $criteria=new CDbCriteria(array(
      'order'=>'likes DESC', 
       )); 

      } 
      $total = Post::model()->count(); 
      $pages = new CPagination($total); 
      $pages->pageSize = 10; 
      $pages->applyLimit($criteria); 
      $posts = Post::model()->findAll($criteria); 

     $this->render('index', array(
       'posts' => $posts, 
       'pages' => $pages, 
      )); 

回答

1

是這樣的?這假定您有一個名爲User的模型,並將pref存儲在名爲pref的列中,並且此列中是您要訂購的列的名稱。

if (Yii::app()->user->isGuest) { 
      $criteria = new CDbCriteria(array(
       'order' => 'likes DESC', 
      )); 
     } else { 
      $userId = Yii::app()->user; 
      $pref = User::model()->findByPk($userId)->pref; 
      $criteria = new CDbCriteria(array(
       'order' => ':pref DESC', 
       'params' => array(
        ':pref' => $pref 
       ) 
      )); 

     }