Lumen: обрабатывать сообщение об ошибке внутри сервисного уровня - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь создать слой службы, и я хотел бы выбросить сообщения об ошибках из моего класса обслуживания.

Если я выполняю проверку внутри контроллера , она работает как положено:

 $this->validate($request, [
            'nomeArtistico' => 'required|max:255',
            'email' => 'required|unique:pessoas',
        ]);

Результат:

{"email":["email@hotmail.com already exists"]}

Но если я попытаюсь проверить внутри службы :

$validator =  Validator::make($request, $this->validationRules)->validate();

Выдает только 500 с сообщением об ошибке HTML по умолчанию: (1/1) ValidationException Указанные данные были неверными.

1 Ответ

0 голосов
/ 22 января 2019

Вы можете поймать ValidationException на вашем блоке ловли и бросить его вот так

$rules = [
     'nomeArtistico' => 'required|max:255',
     'email' => 'required|unique:pessoas'
]

$messages = [
     'required' => ':attribute is required.'
];

try {
       $this->validate($request, $rules, $messages);
}catch (ValidationException $validationException) {
       throw $validationException;
}
...