孤立行正在表中

时间:2011-01-21 15:25:54

标签: cakephp

我有以下型号:

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

每当我尝试删除帖子时,与帖子相关的页面都不会被删除,并留在表格中。删除帖子后,我应该怎么做才能删除相关的页面行?

1 个答案:

答案 0 :(得分:0)

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

长解释:Dependent仅适用于hasMany或hasOne,换句话说,它也会删除父记录的子节点。在您的模式中,您的子项标识帖子,因为它包含pages表的外键。