2017-02-11 8 views
0

Я хочу подтвердить требуемый массив, это как:Laravel проверки массив ключей

"accountType": { 
    "admin" : true, 
    "advertiser": true, 
    "publisher": true, 
    "agency": true 
    }, 

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

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

Это моя проверка, но это просто передать все равно:

$validator = Validator::make($this->request->all(), [ 
      'accountType.admin' => 'boolean:true', 
      'accountType.advertiser' => 'boolean:false', 
      'accountType.publisher' => 'boolean:false', 
      'accountType.agency' => 'boolean:false', 
     ]); 
+0

Правило проверки boolean' 'не принимают параметры. –

+0

@ RossWilson Итак, что вы предлагаете сделать? –

ответ

1

Попробуйте

$validator = Validator::make($this->request->all(), [ 
      'accountType.admin' => 'required|boolean:true', 
      'accountType.advertiser' => 'boolean:false', 
      'accountType.publisher' => 'boolean:false', 
      'accountType.agency' => 'boolean:false', 
     ]); 
+0

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

0

Если сделать трюк, из документации: он поле под проверки должны быть в состоянии быть отлиты как логическое значение. Принимаемые входные данные: true, false, 1, 0, «1» и «0».

$validator = Validator::make($this->request->all(), [ 
    'accountType.admin' => 'boolean', 
    'accountType.advertiser' => 'boolean', 
    'accountType.publisher' => 'boolean', 
    'accountType.agency' => 'boolean', 
]); 
+0

Вы не прочитали вопрос полностью? Я хочу, чтобы он выдавал ошибку, если какая-либо другая роль, кроме admin, установлена, и их значение истинно, дайте мне ошибку, таким образом, она просто проходит проверку. –

+0

Справа, извини, если твоя администрация только зачем не использовать промежуточное ПО? – Adam

+0

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

0

Вы можете изменить значение в 1 для истинных и 0 для ложно, то проверить, как:

$validator = Validator::make($this->request->all(), [ 
    'accountType.admin' => 'required|min:1', 
    'accountType.advertiser' => 'required|min:1', 
    'accountType.publisher' => 'required|min:1', 
    'accountType.agency' => 'required|min:1', 
]); 
+1

Я проверю и дам вам знать –

+0

Это не помогло, это дало мне ошибку 1 символа. в то время как мой запрос состоит из accountType.agency:true –