Laravel FormRequest: клиент отправляет атрибут с точками внутри - PullRequest
0 голосов
/ 31 марта 2020

Клиент отправляет что-то вроде этого:

foo.1.bar=hello

в моем классе FormRequest, который я пробовал:

public function rules()
    {
        return [
            'foo.1.bar' => 'string|nullable' // does not work

            'foo' => 'array|nullable' // does not work

            'foo' => [ // does not work
              '1' => [
                'bar' => 'string|nullable'
              ]
            ]

Есть идеи, как с этим справиться?

1 Ответ

0 голосов
/ 31 марта 2020

Попробуйте получить значение параметра вручную и затем проверить его:

class YourRequest extends FormRequest
{
    public function rules(): array
    {
        return [...];
    }

    public function withValidator(Validator $validator): void
    {
        $value = $this->get('foo.1.bar') ?: $this->get('foo_1_bar');

        $validator->after(function (Validator $validator) use ($value) {
            if ($value == null) {
                $validator->errors()->add('foo.1.bar', 'Error Message.');
                $validator->errors()->add('foo_1_bar', 'Error Message.');
            }
        });
    }
}
...