CakePHP: как удалить многие ассоциации с saveAll - PullRequest
1 голос
/ 07 декабря 2010

У меня есть модель model1, которая имеет много model2. Как я могу удалить все model2s из определенного model1, например, тот с идентификатором 1234? Это означает, что в SQL

UPDATE
    model2
SET
    model1_id=NULL
WHERE
    model1_id=1234;

Но как сформулировать этот путь CakePHP? Я попытался model1->saveAll со следующим массивом в качестве аргумента:

Array
(
[Model1] => Array
    (
        [id] => 1234
    )

[Model2] => Array
    (
    )
)

Это означает, что Model2 просто установлен в пустой массив. Но это не работает. Теперь, как я могу «не связать» объекты2, которые принадлежат другому конкретному объекту1 в отношении hasMany (если смотреть со стороны объекта1)?

1 Ответ

2 голосов
/ 07 декабря 2010

Попробуйте использовать updateAll($fields, $conditions)

$this->Model2->updateAll(array('model1_id' => null), array('model1_id' => 1234));

Вот CakePHP Документы об этом.

...