2014-01-27 94 views
0

我已經工作這個問題這整個週末,我似乎無法找到解決的辦法。 我有三個型號:CakePHP的空屬於關聯和的hasMany關係陣列

用戶類別:

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'; 
    } 

這是我發現的聲明:

我喜歡錶:

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')))); 
+0

什麼是輸出的查詢,設置調試級別爲3。並共享查詢。 – Anubhav

+0

我添加了上面的查詢字符串。 – Nick

+0

eventss不正確,正確的表將是事件,請檢查您的查詢 – Anubhav

回答

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

對不起cornelb,我試過但沒有改變。 – Nick