mayoz/lumen-form-request

Adopt the Laravel Form Request to Lumen framework.

v2.0.0 2020-12-22 07:45 UTC

This package is auto-updated.

Last update: 2024-04-22 15:03:45 UTC


README

Latest Version on Packagist Software License StyleCI

Adopt the Laravel Form Request to Lumen framework.

Installation

You can install the package via composer:

composer require mayoz/lumen-form-request

Register the service provider in your boostrap/app.php configuration file:

$app->register(Illuminate\Foundation\Providers\FormRequestServiceProvider::class);

Usage

Let's continue the official Laravel's documantation.

Format Validation

If you want to format the verification messages, follow these steps:

Firstly import the ValidationException class:

use Illuminate\Validation\ValidationException;

Add (if need) the dontReport list:

/**
 * A list of the exception types that should not be reported.
 *
 * @var array
 */
protected $dontReport = [
    // ...
    ValidationException::class,
];

And finally update the render method:

/**
 * Render an exception into an HTTP response.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Throwable  $exception
 * @return \Symfony\Component\HttpFoundation\Response
 *
 * @throws \Throwable
 */
public function render($request, Throwable $exception)
{
    if ($exception instanceof ValidationException) {
        return $this->convertValidationExceptionToResponse($exception, $request);
    }

    return parent::render($request, $exception);
}

/**
 * Create a response object from the given validation exception.
 *
 * @param  \Illuminate\Validation\ValidationException  $e
 * @param  \Illuminate\Http\Request  $request
 * @return \Symfony\Component\HttpFoundation\Response
 */
protected function convertValidationExceptionToResponse(ValidationException $e, $request)
{
    if ($e->response) {
        return $e->response;
    }

    return response()->json([
        'message' => $e->getMessage(),
        'errors' => $e->errors(),
    ], $e->status);
}

License

This package is licensed under The MIT License (MIT).