Проверка ключа в данных в люмен - PullRequest
0 голосов
/ 06 июля 2018

Я проверяю запрос, который выглядит следующим образом:

 {
  "data": [
    {
      "id": 1,
      "name": "Foo",     
      "values":{
        "val1":"This",
        "99":"That"
      }
    }
  ]
}

Вот мои пользовательские сообщения:

$messages = [
     'data.id'=>'is required',
     'data.name'=>'is required',
     'data.values'=>'must be array',
     'data.values.*'=>'must be numeric'
];

Мое правило проверки таково:

$this->validate(
            $request,
            [
                'data'=>'required|array',
                'data.*.id'=>'required|numeric',
                'data.*.name'=>'required',
                'data.*.values'=>'array',
                'data.*.values.*'=>'numeric'
             ],
            $messages
        );

Правило проверяет значения в массиве "values". Я хочу проверить ключ в массиве «values» [val1, 99].

1 Ответ

0 голосов
/ 06 июля 2018

Написать пользовательское правило проверки для data.*.values:

'data.*.values' => function($attribute, $value, $fail) {
    //$value contains your array of $key => $value pairs for you to loop through
    if( /* doesn't pass your rules */){
        return $fail('custom validation failed');
    }
},
...