2017-02-20 12 views
0

я на самом деле нужно сделать проверку, которая должна проверить для подана которыйправила проверки Laravel для массива

  1. Обязательный
  2. массива
  3. должна иметь по крайней мере две колонки
  4. One имя ключа должно быть correct_topic
  5. Другое один должен быть wrong_topic

Теперь я пишу следующие правила для других полей.

return [ 
     'category' => 'required|numeric', 
     'text' => 'required', 
     'type' => 'required|numeric|in:1,2,3', 
     'vendor'  => 'required|numeric|exists:users,id', 
     'topic' => 'required|array' 
     ]; 

Как я могу улучшить это и включают вышеупомянутую проверку для topic?

Я пишу эти правила в классе TopicRequest. В принципе мне нужно проверить, является ли подана topic массив, который имеет по крайней мере, 2 колонки и не более 4 и один из ключа массива должен быть correct-topic и другие должна быть wrong_topic_1 и т.д.

Есть ли проверка любого по умолчанию правила, которые могут быть эффективно использованы для этой ситуации?

+0

не ясно вопроса – KTAnj

+0

вы должны написать пользовательские правила проверки для темы. – KTAnj

+0

Любой пример входов? –

ответ

0

Вы можете возможно выполнить выше списков проверки с первого array проверки и использования dot notation стиля проверки, как ниже:

return [ 
    ................ 
    'topic' => 'required|array|min:2|max:4', 
    'topic.correct_topic' => 'required', 
    'topic.wrong_topic' => 'required' 
]; 

Использование мин и макс согласно документу Laravel, использует the size rule с ПО ПРИНЦИПУ файлов полей который Я считаю, что также должен быть релевантен для массивов, т.е. использует метод count(). Ref min-here и max-here

PS: Я не могу быть уверен, что это на самом деле устранить проблему в частности, но я считаю, что это должно дать вдохновение для ответа вам нужно.

Вы также можете обратиться к Validating Arrays если какому-либо сомнению

Надеется, это поможет :)