Сиротские строки остаются в таблице - PullRequest
0 голосов
/ 21 января 2011

У меня есть следующие модели:

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 голосов
/ 22 января 2011

Сортировать ответ: Удалить страницу, и это также удалит сообщение.:)

Длинное объяснение: Зависимый работает только для hasMany или hasOne, другими словами, он также удалит потомки родительской записи.В вашей схеме ваш ребенок идентифицирует пост, потому что он содержит внешний ключ таблицы страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...