2013-12-03 2 views

ответ

6

Категория (и все остальные объекты) сохраняются внутри транзакции. Событие catalog_category_save_after запускается внутри транзакции. Поэтому любая ошибка, которая может появиться у наблюдателей этого события, приведет к откату.

Событие catalog_category_save_commit_after инициируется после совершения транзакции. Поэтому любая ошибка внутри наблюдателей для этого события не приведет к откату для сохранения категории.

+0

, можете ли вы рассказать мне, какие параметры попадают в каталог_category_save_commit_after event –

+1

@AmitBera. Текущая категория передается в качестве аргумента для события. Вы можете сделать это следующим образом: '$ observer-> getEvent() -> getCategory()' или '$ observer-> getEvent() -> getDataObject()'. Оба возвращают то же самое. – Marius

+0

@marius 'catalog_category_save_commit_after' - это одно и то же событие, доступное в magento2? – Sathish

1

Событие запускается после фиксации, что означает, что этот наблюдатель может использоваться для сигнализации успеха SQl.

, но не гарантирует, что не было бы никакого откат назад. При написании наблюдателя мы не можем считать само собой разумеющимся, что все, что было сделано в sql, не будет откатываться назад.

Короче говоря, если вы хотите добавить наблюдателя, некоторые функции, которые должны собираться после sucees (comit), затем используйте catalog_category_save_commit_after.

Смежные вопросы