2012-09-07 36 views
0

所以,我有一個CakePHP的基本成員系統。他們可以發佈內容,我想添加評論系統。從評論中獲取一些額外的信息

所以,我提出在數據庫表和作出的模型和用戶/職位/評論鏈接是這樣的:

用戶模式:

public $hasMany = array("Post", "Comment"); 

帖子型號:

public $belongsTo = "User"; 
public $hasMany = "Comment"; 

評論型號:

public $belongsTo = array("User", "Post"); 

而且似乎工作得很好,我得到正確的意見,一個帖子,在這裏調試的一個帖子:

array(
    'Post' => array(
     'id' => '25', 
     'title' => 'Rocket Club', 
     'description' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam elementum sem ac sem imperdiet cursus. Quisque venenatis pulvinar ornare. Donec rutrum, lacus vel imperdiet sagittis, metus risus interdum ante, iaculis venenatis arcu nibh et odio.', 
     'image' => '25-75da9db5.jpg', 
     'created' => '2012-09-07 01:40:14', 
     'user_id' => '19' 
    ), 
    'User' => array(
     'password' => '*****', 
     'id' => '19', 
     'username' => 'Axiol', 
     'mail' => '*****', 
     'firstname' => 'Arnaud', 
     'lastname' => 'Delante', 
     'description' => 'C'est moi le monsieur qui est derrière ce site. Dingue hein ?', 
     'local' => '4420 Saint-Nicolas, Belgique', 
     'twitter' => 'Axiol', 
     'facebook' => 'axiol', 
     'gplus' => '100906827397700671747', 
     'github' => 'Axiol', 
     'website' => 'http://www.axioland.me', 
     'created' => '2012-09-04 02:10:31', 
     'lastlogin' => '2012-09-07 01:38:44', 
     'active' => '1' 
    ), 
    'Comment' => array(
     (int) 0 => array(
      'id' => '1', 
      'content' => 'Test test d'un joli commentaire constructif et tout pour aider la personne qui a postée l'image.', 
      'post_id' => '25', 
      'user_id' => '19' 
     ) 
    ) 
) 

但是,I'ld更喜歡。我想知道是否有簡單的方法可以獲得有關發表評論的用戶的額外信息(如他的暱稱和郵件)?有沒有一個構建?

回答

2

有兩種方法可以做到這一點。

1-在您的find()調用中設置'recursive' => 2。這種方法的問題是它會帶來來自二級關聯的所有數據,這可能太多了。

2-使用Containable behavior,並嘗試這樣的事:

$this->Post->find('first', array('conditions' => array('Post.id' => 1), 'contain' => array('User', 'Comment', 'Comment.User'))); 
+0

感謝。並感謝談論遞歸太多,可能會在以後的幫助:) – Axiol

+0

嗡嗡聲...你確定的語法?因爲這裏是我發送給視圖的:$ this-> set(「post」,$ this-> Post-> find(「first」,array(「conditions」=> array(「Post.id」=> $ id),「contains」=> array(「User」,「Comment」,「Comment.User」))));並在調試中,我沒有什麼超過評論:/ – Axiol

+0

您是否將可容忍行爲附加到Post模型? – Choma