1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- class GroupRecord extends ARedisRecord{
- public $id;
- public $name;
- public $desc;
- public $avatar;
- public $can_join;
- public $can_find;
- public $can_topic;
- public $can_pics_view;
- public $can_commend_view;
- public $can_post;
- public $admins=array();
- public $relate_pet_types=array();
- public $cover=array();
- public $city_info=array();
- public $cat = array();
- public $tags = array();
- public $topics_count;
- public $today_topic;
- public $posts_count;
- public $users_count;
- public $order;
- public $is_follow;
- public $keyword;
- public $tags_str;
- public $status;
- public static $need_serialize = array('admins','relate_pet_types','cover','city_info','cat','tags');
- public static $int_filed = array('can_join','can_find','can_topic','can_pics_view','can_commend_view','can_post','topics_count','posts_count','users_count','today_topic','order','is_follow');
- public function __construct($scenario='insert'){
- parent::__construct($scenario);
- }
- public static function get($id){
- $group_info = self::model()->findByPk($id);
- $res = array();
- if($group_info){
- foreach($group_info->attributeNames() as $attribute) {
- if(in_array($attribute,GroupRecord::$need_serialize)){
- if(is_array($group_info->{$attribute})){
- $res[$attribute] = $group_info->{$attribute};
- }else{
- $res[$attribute] = unserialize($group_info->{$attribute});
- }
- }elseif(in_array($attribute,GroupRecord::$int_filed)){
- $res[$attribute] = intval($group_info->{$attribute});
- }else{
- $res[$attribute] = $group_info->{$attribute};
- }
- }
- }else{
- $group = Group::get(new MongoId($id));
- if($group){
- return $group->parseRow($group);
- }else{
- return false;
- }
- }
- return $res;
- }
- public static function model($className=__CLASS__)
- {
- return parent::model($className);
- }
- public function beforeSave()
- {
- foreach($this->attributeNames() as $attribute) {
- if(in_array($attribute,GroupRecord::$need_serialize)){
- $this->{$attribute} = serialize($this->{$attribute});
- }
- }
- return true;
- }
- }
|