Самое простое, это оформить этот метод как событие и прицеплять его только в нужных действиях.
Оформляем событие:
Код: Выделить всё
public function afterSaveEvent($event) { // создаем функцию-обработчик события
$sender = $event->sender; // получаем экземпляр класса, который был сохранен
if (!$sender->isNewRecord) {
$products = Product::model()->findAllByAttributes(array('categoryId' => $sender->id));
foreach ($products as $product) {
$product->сategoryId = $this->id;
$product->categoryUrl = $this->url;
$product->categoryName = $this->name;
$product->save();
}
}
}
В действии, где необходимо срабатывание этого события:
Код: Выделить всё
$model = new Model(); // или любое другое действие получающее экземпляр модели
$model->onAfterSave = array($model,'afterSaveEvent'); // подключаем событие
$model->save(); // после сохранения модели событие выполнится.
Во всех остальных действиях это событие выполнятся не будет.
Последний раз редактировалось
byteasdf 2011.04.14, 09:32, всего редактировалось 1 раз.