Я использую Laravel v 5.7.15.
Я написал помощник по проверке, который проверяет запрос API - это успешно работает, и до этого я использовал try / catch для его окружения.
Я перешел к обработке исключения в обработчике, однако не могу запустить функцию render - она переходит прямо в «report» и выдает исключение в моей консоли tinker.
Обработчик: (полный класс в соответствии с запросом)
<?php
namespace App\Exceptions;
use Illuminate\Validation\ValidationException;
use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use App\Log;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that are not reported.
*
* @var array
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed for validation exceptions.
*
* @var array
*/
protected $dontFlash = [
'password',
'password_confirmation',
];
/**
* @param Exception $exception
* @return mixed|void
* @throws Exception
*/
public function report(Exception $exception)
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
dd($exception);
$log = new Log();
$log->status = 2;
// Validate API incoming data
if ($exception instanceOf ValidationException) {
foreach ($exception->errors() as $error) {
// collect multiple validation errors
$message[] = implode('', $error);
}
$message = implode('', $message);
$log->message = $message;
$log->save();
$response = [
'message' => $message,
'status' => 400,
];
} else {
$response = [
'message' => $exception->getMessage(),
'status' => '500',
];
}
return parent::render($request, $exception);
}
}
Это не удается умереть и сбросить, однако я могу использовать dd в функции отчета, и это прекрасно работает.Остальная часть этого файла осталась нетронутой, за исключением включений в верхней части файла.
Вот как я называю свой валидатор в моем контроллере:
$this->validate($request, BlueparkValidatorArrays::$getOrders);
Если бы кто-нибудь мог указать мне правильное направление, я был бы очень признателен.