Как отправить настраиваемый параметр в настраиваемое исключение в Laravel?

Я хочу отправить свои собственные параметры в настраиваемое исключение, используя throw new CustomException.

Я определил свои коды ошибок в Config, и они мне необходимы.

public function saveMenu($data){
    $validatedData = Validator::make($data, array(
        'id' => 'required',
        'menuID' => 'required',


    ));
    try {
        $validatedData->validate();
    } catch \Exception $e){

        $data= array(
            'status' => false,
            'code' => 599
            'message' => config('exception_codes.599').'<br/>'.$validatedData->errors(),
            'data' => []
        );

       throw new CustomException($data ['message'], $data['code'],$e);
        return $data;
    }

}

class Handler расширяет ExceptionHandler {

protected $dontReport = [
    //
];

protected $dontFlash = [
    'password',
    'password_confirmation',
];


public function report( Exception $exception=NULL)
{


    parent::report($exception);
}

public function render($request, Exception $exception)
{
    return parent::render($request, $exception);
}

}

class CustomException extends Exception{

 public $code;
public $message;
public $trace;

public function __construct( $message, $code, Exception $exception=NULL)

{
    parent::__construct($message, $code, $exception);
    $this->code = $code;
    $this->message=$message;
    $this->trace= $exception->getTrace();
}
public function report($message, $code, Exception $exception=NULL)
{
    $message = $exception->getMessage();
    $xx= new Menu();
    $xx->setFile($this->trace[1]['file']);
    $xx->setLine($this->trace[1]['line']);
    $xx->setFunction($this->trace[1]['function']);
    $xx->setClass($this->trace[1]['class']);
    $xx->setMessage($message);
    $xx->save();
    parent::report($exception);

}

public function render($request, Exception $exception)
{
    return parent::render($request, $exception);
}

Я получаю эту ошибку;

Too few arguments to function App\Exceptions\CustomException::report(), 0 passed in C:......\Handler.php on line 102 and at least 2 expected"

Можешь мне помочь?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
2 794
1

Ответы 1

Нет необходимости явно передавать сообщение и код в методе report().

public function report()
{
    $message = $this->getMessage();

    $hataTakip = new HataTakip();
    $hataTakip->setFile($this->trace[1]['file']);
    $hataTakip->setLine($this->trace[1]['line']);
    $hataTakip->setFunction($this->trace[1]['function']);
    $hataTakip->setClass($this->trace[1]['class']);
    $hataTakip->setMessage($message);
    $hataTakip->save();

    parent::report($this);

}

В любом случае вам следует ознакомиться с документацией на Обработка ошибок.

он говорит, что вызов неопределенного метода Exception :: report () @Mozammil

d.k 07.01.2019 06:38

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