/** * 分组删除后,自动删除FriendBelongGroup的关系 */ protected function afterDelete() { //增加uid,防止删除系统的gid $condition = "(uid = {$this->uid} AND gid={$this->id})"; FriendBelongGroup::model()->deleteAll($condition); }
public function actionGetAllFriends() { $model = new Friend(); $uid = Yii::app()->user->id; $gid = Yii::app()->request->getParam('type'); $page = Yii::app()->request->getParam('pageSize'); $_GET["page"] = $page; $out = ''; //初始化 $criteria = new CDbCriteria(); $criteria->order = 'dateline'; $criteria->condition = "friend.uid=:uid AND status = 1"; $criteria->params = array(':uid' => Yii::app()->user->id); $withOption = array('user'); //取得数据总数,分页显示 if (!empty($gid)) { //去除AR,手动LEFT JOIN $tablename = FriendBelongGroup::model()->tableName(); $modelname = Friend::model()->tableName(); $criteria->join = "LEFT JOIN {$tablename} ON {$tablename}.uid = {$modelname}.uid AND {$tablename}.fuid = {$modelname}.fuid"; $criteria->addCondition('gid=' . $gid); $total = Friend::model()->count($criteria); } else { $total = Friend::model()->count($criteria); } $pages = new CPagination($total); $pages->pageSize = self::PAGE_SIZE; $pages->applyLimit($criteria); //获取数据集 $friends = Friend::model()->with($withOption)->together()->findAll($criteria); foreach ($friends as $key => $value) { $out[$key]["fUid"] = $value["fuid"]; $out[$key]["friendUserName"] = $value["fusername"]; $out[$key]["friendHeadPic"] = ''; // getUserFace($v["fuid"]) } echo '(' . CJSON::encode($out) . ')'; }
/** * 好友数 */ public function countGroupFriend($uid = '', $gid = 0) { if (empty($uid)) { $uid = Yii::app()->user->id; } $criteria = new CDbCriteria(); $criteria->condition = 't.uid=:uid AND status= 1'; $criteria->params = array(':uid' => $uid); if (!empty($gid)) { $table_name = FriendBelongGroup::model()->tableName(); $criteria->join = "left join {$table_name} ON {$table_name}.uid = t.uid "; $criteria->addCondition('gid=' . $gid); } $count = Friend::model()->count($criteria); return $count; }