You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php
namespace App\Exception\Handler;
use App\Constants\ErrorCode;use Hyperf\ExceptionHandler\ExceptionHandler;use Hyperf\HttpMessage\Stream\SwooleStream;use Hyperf\Validation\ValidationException;use Psr\Http\Message\ResponseInterface;use Throwable;
class ValidationExceptionHandler extends ExceptionHandler{
public function handle(Throwable $throwable, ResponseInterface $response) { $this->stopPropagation();
$content = json_encode([ "status" => 'error', "code" => ErrorCode::PARAMS_INVALID, "result" => [], "message" => $throwable->validator->errors()->first() ]);
return $response->withHeader('Content-Type', 'application/json') ->withStatus(200) ->withBody(new SwooleStream($content)); }
public function isValid(Throwable $throwable): bool { return $throwable instanceof ValidationException; }}
|