У меня есть проект на yii2. Он пишет определенные логи при изменении статуса в catalogOrder, выгдялит это таким образом.
bootstrap.php
\yii\base\Event::on(
\ms\loyalty\catalog\common\models\CatalogOrder::class,
\ms\loyalty\catalog\common\models\CatalogOrder::EVENT_AFTER_UPDATE,
[\common\listeners\CatalogOrderListener::class, 'catalogOrderOnChangeStatus']
);
\yii\base\Event::on(
\ms\loyalty\catalog\common\models\CatalogOrder::class,
\ms\loyalty\catalog\common\models\CatalogOrder::EVENT_AFTER_INSERT,
[\common\listeners\CatalogOrderListener::class, 'catalogOrderOnChangeStatus']
);
Ну и сам код:
public static function catalogOrderOnChangeStatus(Event $event)
{
try {
/** @var CatalogOrder $catalogOrder */
$catalogOrder = $event->sender;
if ($event instanceof AfterSaveEvent || $catalogOrder->isAttributeChanged('status')) {
(new CreateExtranetLog())->handle('order_id', $catalogOrder->id, self::EXTERNAL_LOG_URL);
}
}
catch (Exception $e) {
}
}
Самое интересное, что когда срабатывает 'добавление' он отрабатывает корректно, но когда срабатывает 'обновление', этого не происходит. Подскажите куда копать??
AfterSaveEvent, что меняется атрибутstatus, что не выпадает эксепшен. – u_mulder Nov 28 '23 at 08:14