2011-01-21 49 views
0

我有以下型号:孤儿行被留在桌上

class Page extends AppModel { 
    var $name = 'Page'; 
    var $order = array('Page.modified' => 'desc'); 

    var $hasOne = array(
     'Post' => array(
      'className' => 'Post', 
      'dependent' => TRUE 
     )); 

class Post extends AppModel { 
    var $name = 'Post'; 
    var $hasAndBelongsToMany = array(
     'Category' => array(
      'className' => 'Category' 
     ) 
    ); 
    var $belongsTo = array(
     'Page' => array(
      'className' => 'Page', 
      'dependent' => TRUE 
     ) 
    ); 

这里是控制器代码:

function admin_delete($id = NULL) { 
    if ($this->Post->delete($id, TRUE)) { 
     $this->Session->setFlash('This Post has been deleted', 'flash_good'); 
     $this->redirect(array('action' => 'index')); 
    } 
} 

我的表如下所示:

Page: 
--------------------------- 
id title uri meta_keywords 


Post: 
--------------------------- 
id page_id title uri body 

每当我尝试删除一篇文章时,与该文章相关的页面都不会被删除并留在表格中。删除帖子时,我应该如何删除相关的页面行?

回答

0

排序的答案是:删除页面,这也会删除帖子。 :)

长解释:依赖只适用于hasMany或hasOne,换句话说,它也会删除父记录的孩子。在您的模式中,您的子代表是帖子,因为它包含页表的外键。