Laravel: сообщение проверки для одинаковых правил в одном поле

Я новичок в Laravel и пытаюсь подтвердить запрос. Я должен следующий запрос класса:

namespace App\Http\Requests;

class TestRequest extends FormRequest
{
protected function rules()
{
return [
'group_id' => 'required|exists:groups,id,deleted_at,NULL|exists:group_users,group_id,user_id,' . \Auth::user()->id
];
}
}

Моя проблема:

  • Я должен проверить, что группа существует, и она не удалена. Это первое «существующее» правило.
  • И я должен проверить, что зарегистрированный в данный момент пользователь является частью группы. Второе «существующее» правило.

Мой вопрос:

  • Когда любой из 2 существует не удается, как я могу узнать, какой из них не удалось?
  • Я хочу вернуть другое сообщение об ошибке для этих существующих проверок. Как я должен это делать?
  • Должен ли я написать собственную проверку для этого?

PS: я использую Laravel 5.3

0

Решение

Я бы порекомендовал написать собственное правило. Проверьте ссылку ниже, чтобы добавить его в свой код

https://laravel.com/docs/5.3/validation#custom-validation-rules

Validator::extend('group_check', function($attribute, $value, $parameters, $validator) {
// Do custom exists check 1;
$group = Group::where('id', $value)->where('deleted_at', 'null')->first();

if (!$group) {
return false;
}

// Do custom exists check 2;
});

Validator::replacer('group_check', function($message, $value, $parameters, $validator) {
// Do custom exists check 1 but instead of returning false, return a custom message

// Do custom exists check 2 return a custom message
});
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]