Отвечая на ваши вопросы:
Чтобы передать это исключение для просмотра, вы можете реализовать метод render
, который вы уже начали делать.Вы можете просто сделать:
if(!$request->ajax()){
view('error_handler', compact('exception'))
} else {
return response()->json($response);
}
, так что теперь вы можете просто создать error_handler.blade.php
представление, и у вас будет доступ к переменной $exception
, так что вы можете использовать там {{ $exception->getMessage}}
и т. Д.
Вы не определили, чего именно хотите достичь, однако это должно работать без проблем:
public function render($request,$exception) {
if(!$request->ajax()){
view('error_handler', compact('exception'))
}
return response()->json([
'code' => $exception->getCode(),
'status' => 'error',
'message' => $exception->getMessage(),
'data' => 'sample data'
]);
}
Конечно, вместо использования $exception->getCode()
дляcode
вы можете поместить все, что захотите, это всего лишь пример того, что вы также можете использовать код и сообщение, которое у вас есть в вашем исключении, при условии, что вы задали какой-то пользовательский при выдаче исключения, например:
throw new CustomException('This is custom message', 123);