CakePHP清空BelongsTo和hasMany关系数组

时间:2014-01-27 10:33:57

标签: cakephp models

整个周末我一直在研究这个问题,我似乎无法找到解决方案。 我有三种模式:

用户类:

class User extends AppModel {
      var $hasMany = array('Like','Event');
    }

喜欢上课:

class Like extends AppModel {

      var $belongsTo = array ('Event','User');  
    }

活动类:

class Event extends AppModel {
     var $belongsTo = 'User';
     var $hasMany = 'Like';
    }

这是我的发言:

$this->set('likes', $this->Like->find('all', array(
                       'contain'=>array(
                                   'User','Event')));

我喜欢的表是:

id(int 10)
user_id(int 10)
event_id(int 10)

我的用户表有:

id(int 10)  
plus all regular user related column

我的活动表有:

id(int 10)  
user_id (int 10)
Plus all other event related columns

现在问题:

[0]
   [Like]
         id:77
         user_id:30
         event_id:130
   [Event]
          id(null)
          user_id(null)
          title(null)
          date(null)
          etc......
   [User]
          id:30
          email:********@gmail.com
          password:**********************
          created:2013-07-07 23:45:13
          modified:2013-07-07 23:45:13
          etc.........

这是我的疑问:

SELECT `Like`.`id`, `Like`.`user_id`, `Like`.`event_id`, `Event`.`id`, `Event`.`user_id`,     `Event`.`title`, `Event`.`date`, `Event`.`price_advance`, `Event`.`price_door`,    `Event`.`price_vip`, `Event`.`created`, `Event`.`bcg_img`, `Event`.`event_info`, `Event`.`event`, `Event`.`phone1`, `Event`.`phone2`, `Event`.`promoter`, `User`.`id`, `User`.`email`, `User`.`password`, `User`.`created`, `User`.`modified`, `User`.`isAdmin`, `User`.`verified`, `User`.`full_name` FROM `quadb`.`likes` AS `Like` LEFT JOIN `quadb`.`eventss` AS `Event` ON (`Like`.`event_id` = `Event`.`id`) LEFT JOIN `quadb`.`users` AS `User` ON (`Like`.`user_id` = `User`.`id`) WHERE 1 = 1

我不知道为什么我的事件数组会返回null。任何帮助将不胜感激。

修改 在更改查找代码以添加订单子句后,它神奇地起作用,我不确切地知道原因:

$this->set('likes', $this->Like->find('all', array(
                       'order' => array('Like.created' => 'DESC'),
                       'contain'=>array('Quad'))));

1 个答案:

答案 0 :(得分:0)

class Event extends AppModel {
 var $belongsTo = array('User');
 var $hasMany = array('Like');
}