Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phpnamespace Illuminate\Validation;use Exception;use Illuminate\Support\Arr;use Illuminate\Support\Facades\Validator as ValidatorFacade;class ValidationException extends Exception{/*** The validator instance.** @var \Illuminate\Contracts\Validation\Validator*/public $validator;/*** The recommended response to send to the client.** @var \Symfony\Component\HttpFoundation\Response|null*/public $response;/*** The status code to use for the response.** @var int*/public $status = 422;/*** The name of the error bag.** @var string*/public $errorBag;/*** The path the client should be redirected to.** @var string*/public $redirectTo;/*** Create a new exception instance.** @param \Illuminate\Contracts\Validation\Validator $validator* @param \Symfony\Component\HttpFoundation\Response|null $response* @param string $errorBag* @return void*/public function __construct($validator, $response = null, $errorBag = 'default'){parent::__construct(static::summarize($validator));$this->response = $response;$this->errorBag = $errorBag;$this->validator = $validator;}/*** Create a new validation exception from a plain array of messages.** @param array $messages* @return static*/public static function withMessages(array $messages){return new static(tap(ValidatorFacade::make([], []), function ($validator) use ($messages) {foreach ($messages as $key => $value) {foreach (Arr::wrap($value) as $message) {$validator->errors()->add($key, $message);}}}));}/*** Create an error message summary from the validation errors.** @param \Illuminate\Contracts\Validation\Validator $validator* @return string*/protected static function summarize($validator){$messages = $validator->errors()->all();if (! count($messages) || ! is_string($messages[0])) {return $validator->getTranslator()->get('The given data was invalid.');}$message = array_shift($messages);if ($count = count($messages)) {$pluralized = $count === 1 ? 'error' : 'errors';$message .= ' '.$validator->getTranslator()->get("(and :count more $pluralized)", compact('count'));}return $message;}/*** Get all of the validation error messages.** @return array*/public function errors(){return $this->validator->errors()->messages();}/*** Set the HTTP status code to be used for the response.** @param int $status* @return $this*/public function status($status){$this->status = $status;return $this;}/*** Set the error bag on the exception.** @param string $errorBag* @return $this*/public function errorBag($errorBag){$this->errorBag = $errorBag;return $this;}/*** Set the URL to redirect to on a validation error.** @param string $url* @return $this*/public function redirectTo($url){$this->redirectTo = $url;return $this;}/*** Get the underlying response instance.** @return \Symfony\Component\HttpFoundation\Response|null*/public function getResponse(){return $this->response;}}