我有以下型号:
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 :(得分:0)
排序答案是:删除页面,这也将删除帖子。 :)
长解释:Dependent仅适用于hasMany或hasOne,换句话说,它也会删除父记录的子节点。在您的模式中,您的子项标识帖子,因为它包含pages表的外键。