Использование required_unless для массива - PullRequest
0 голосов
/ 19 октября 2018

У меня есть 3 выбора ..

<select name="roles" id="roles" class="form-control" ng-model="newUserFormData.roles" multiple required>
    <option ng-repeat="role in roleList" value="<% role.id %>"><% role.name %></option>
</select>

<select name="sites" id="sites" class="form-control" ng-model="newUserFormData.sites" multiple>
    <option ng-repeat="site in siteList" value="<% site.id %>"><% site.name %></option>
</select>

<select name="projects" id="projects" class="form-control" ng-model="newUserFormData.projects" multiple>
    <option ng-repeat="project in projectList" value="<% project.id %>"><% project.name %></option>
</select>

Примечание:

  1. Роли могут быть несколько .. является входнымтребуется ..
    • (1) - Администратор (не входит в параметры)
    • (2) - Ведущий
    • (3) - Аналитик
    • (4) - Key Entry
  2. . Сайтов может быть несколько .. Не требуется интерфейс.
    • (1) - Loc 1
    • (2) - Loc 2
    • (3) - Loc 3
  3. Проектов может быть несколько .. Не требуется интерфейс ..
    • (1) - Проект 1
    • (2) - Проект 2
    • (3) - Проект 3

теперь мой валидатор..

protected function validatorName(array $data)
{
    return Validator::make($data, [ 
        'roles' =>  'required|array|min:1',
        'sites'  => 'required_unless:roles.*,in:2|required_unless:roles.*,in:3',
        'projects'  => 'required_unless:roles.*,in:2|required_unless:roles.*,in:3',
    ],[
        'sites.required_unless' => 'Site is required unless Lead or Analyst is selected as role.',
        'projects.required_unless' => 'Project is required unless Lead or Analyst is selected as role.',
    ]);
}

Проблема:

  • Когда я выбираю в качестве роли ведущего / аналитика, он по-прежнему требует сайтов и проектов, когдапредположительно, не должен.

    Запросить полезную нагрузку: роли: ["3"],

  • Когда я выбираю Ввод ключа в качестве роли, этопо-прежнему требуются сайты и проекты наканунеn есть значения.

    Запрос полезной нагрузки: проекты: ["1"], роли: ["4"], сайты: ["2"],

Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...