Проверка правильности вложенных правил Laravel в массиве - PullRequest
0 голосов
/ 04 марта 2019

Я с Laravel и хочу написать элегантные правила проверки :) С помощью этого Framework это действительно легко, но я не знаю, как к этому подходить, когда сталкиваюсь с отношениями 1: n.

У меня естьдва ресурса, Пользователь и Контакт .Пользователь может иметь несколько контактов.

Итак, я хочу форму, где вы можете заполнить все поля пользователя И всю информацию о контакте.Для этого я хотел бы написать запрос следующим образом:

UserRequest:

public function rules()
    return [
        'name' => 'required|string',
        'email' => 'required|email|unique:exists:users,id',
        'contacts' => 'array',
        'contacts.*' => new ContactRequest() // This is the problem
    ]

Мой вопрос: как я могу применить этот тип проверки?В частности, при использовании массива, как я могу сделать модульную проверку, чтобы применить проверки вложенных ресурсов?Или я должен вместо этого разработать ContactRule?

Редактировать:

Я хочу, чтобы эта форма отправки внешнего интерфейса была такой:

` // POST: users
    {
        'name': 'UserName',
        'email': 'user@mail.com'
        'contacts': [
            [
                'email' => 'contac_1@mail.com',
                'contact_type_id => 1
            ],
                        [
                'email' => 'contac_2@mail.com',
                'contact_type_id => 2
            ],

    }
`

Вот и все,Thx!

1 Ответ

0 голосов
/ 04 марта 2019

У нас есть API с сотнями результатов в каждом запросе или, возможно, пост / патч.Мы по-прежнему используем:

'data.relationships.users.data.*.id' => [
    'string',
    'unique:api_groups,name,' . ($this->route('group')->id ?? 0),
]

Так что для вас

'contacts.*.email' => 'required|email|unique:exists:users,id'

Работает отлично.Это не становится более сложным или что-то еще.

...