@m4son

Как убрать ошибку «Maximum function nesting level of '256' reached, aborting!»?

При событии "Сохранение заказа" я пытаюсь изменить статус заказа, пишу код:
$order = $event->getParameter("ENTITY");
$order->setField("STATUS_ID", "T");
$order->save();

Но выскакивает ошибка "Maximum function nesting level of '256' reached, aborting!"
Я увеличил вложенность до 2000, но не помогло.
Подскажите, что не так ?
  • Вопрос задан
  • 485 просмотров
Решения вопроса 1
Real_Fermer
@Real_Fermer
Программист PHP
Вы входите в бесконечный цикл обновлений. На входе в функцию проверяйте что уже установлен нужный статус.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Не надо вызывать $order->save();

public function changeStatusOnOrderCreate(\Bitrix\Main\Event $event)
{
    /** @var \Bitrix\Sale\Order $order */
    $order = $event->getParameter("ENTITY");
    $order->setField("STATUS_ID", "T");

    $event->addResult(
        new Main\EventResult(
            Main\EventResult::SUCCESS, $order
        )
    );
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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