Как в массиве в названии ключа разрешить любые числа?
Всем привет подскажите пожалуйста, у меня есть ларавелевский валидатор messages в котором в ключе массива мне необходимо разрешить любое число. Знаю что если поставить * то все что после нее будет все будет проходить. Но можно ли как то только числа сделать?
public function messages()
{
return [
'attributes.*.required' => 'Необходимо выбрать атрибут',
];
}
то есть вот что типа такого
public function messages()
{
return [
'attributes.[0-9].required' => 'Необходимо выбрать атрибут',
];
}
Ответы (1 шт):
Автор решения: Andreas Hunter
→ Ссылка
Можете создать свой Rule класс для валидации и проверить там ключей входного массива
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class IntegerArrayKeys implements Rule
{
public function passes($attribute, $value)
{
return is_array($value) && count(array_filter(array_keys($value), 'is_string')) === 0;
}
public function message()
{
return 'Ключ массива должен быть числовым';
}
}