Отчет Laravel 9() с контекстом

Я хотел бы зарегистрировать контекст исключения как текущие данные в некоторых переменных. Но обработчик repost(), который я использую для регистрации исключений, не поддерживает параметры контекста. Есть ли другой способ сделать это?

try {  
   // process the points
   $customerPointsService->subtractPointsForRewardReservation($customerReward);
} catch(\Throwable $e) {
   report($e);  
   // I would like to log also some variable values
   return $this->sendJsonErrorWithCorrectStatusCode("Customer point subtraction failed.", [], 422);
}

чуть выше отчета($e) добавьте Log::error('Не удалось вычесть баллы клиента.', ['customer_reward_id' => $customerReward->id]);

Akshay ak 13.03.2024 13:48

Вы имеете в виду использовать оба? Log::error должно быть достаточно. Не должно быть?

Čamo 14.03.2024 11:41
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Создайте собственное исключение:

class ContextualException extends \Exception {
    protected $context;

    public function __construct($message = "", $code = 0, Throwable $previous = null, $context = []) {
        parent::__construct($message, $code, $previous);
        $this->context = $context;
    }

    public function getContext() {
        return $this->context;
    }
}
try {
    // If an error occurs
    throw new ContextualException("Error message", 0, null, ['variable' => $variableValue]);
} catch (ContextualException $e) {
    report($e);
    // Access context data
    $context = $e->getContext();
    // Log context or do something with it
    return $this->sendJsonErrorWithCorrectStatusCode("Customer point subtraction failed.", [], 422);
}

Другие вопросы по теме