2011-01-21 12 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に対してのみ動作します。つまり、親レコードの子も削除されます。あなたのスキーマでは、ページテーブルの外部キーが含まれているので、あなたの子はIDを投稿します。

関連する問題