public function actionIndex($user_id, $type = null) { $user = User::model()->throw404IfNull()->findByPk($user_id); switch ($type) { case null: $friends_ids = Friend::userFriendsIds($user->id); break; case 'in': $friends_ids = Friend::getIncomingFriendsIds($user_id); break; case 'out': $friends_ids = Friend::getOutcomingFriendsIds($user_id); break; } $model = new User(); $model->unsetAttributes(); if (isset($_GET['User'])) { $model->attributes = $_GET['User']; } $criteria = new CDbCriteria(); $criteria->addInCondition('id', $friends_ids); $criteria->compare('name', trim($model->name), true); $criteria->compare('email', $model->email, true); $data_provider = new CActiveDataProvider('User', array('criteria' => $criteria)); $this->render('index', array('data_provider' => $data_provider, 'user' => $user, 'type' => $type)); }