Почему при удалении через Something::model()->deleteByPk(...) не вызывается beforeDelete()?

Использую Yii первой версии.

Приведу пример. Есть модель Article. Внутри ее beforeDelete() я удаляю другую сущность при помощи Category::model()->deleteByPk(...). Внутри Category в ее beforeDelete() я аналогично удаляю еще одну другую сущность.

Дело в том, что есть удалять через Category::model->deleteByPk(...), внутренний beforeDelete уже не вызывается.

То есть, если удалить в Article Category с помощью deleteByPk(...), то внутри Category beforeDelete() не вызывается. Что бы вызвалось, нужно делать
$category = Category::model()->findByPk($this->route_id);
        if ($category)
        {
            $category->delete();
        }


Я не очень опытный. Так и должно быть или просто я чего то не знаю?
  • Вопрос задан
  • 3591 просмотр
Решения вопроса 1
0neS
@0neS
beforeDelete() срабатывает только для загруженных моделей: Category::model()->findByPk(...)->delete();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы