Trait for Laravel FormRequests to enable the use of custom responses for failed validation (or authorization) attempts.
composer require devlop/laravel-failed-validation-response
use Devlop\Laravel\Validation\FailedValidationResponse;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Symfony\Component\HttpFoundation\Response;
class DemoRequest extends FormRequest
{
use FailedValidationResponse;
// ... Your normal FormRequest logic.
/**
* Get the response for a failed validation attempt.
*
* @param Validator $validator
* @return Response|null
*/
public function failedValidationResponse(Validator $validator) : ?Response
{
// Implement this method to use a custom response on validation failure.
// Do not implement this method to instead use the default behaviour.
// Example:
return redirect()->to('/');
}
/**
* Get the response for a failed authorization attempt.
*
* @param Validator $validator
* @return Response|null
*/
public function failedAuthorizationResponse(Validator $validator) : ?Response
{
// Implement this method to use a custom response on authorization failure.
// Do not implement this method to instead use the default behaviour.
// Example:
return response()->json([
'reason' => 'you are not allowed to that!',
], 401);
}
}