Как применить проверку к любому отдельному полю с тем же именем Laravel? - PullRequest
0 голосов
/ 18 мая 2018

У меня есть проект, который состоит из многоязычных функций.Поэтому я создаю форму, которая состоит из нескольких языков, которые будут вставлены, если пользователь захочет.Но проверка должна быть такой, как если бы любое из полей, имеющих одно и то же имя, состояло из значения, тогда оставьте все остальное, как

Форма

<form>
   <input type="text" name="name[EN]" />
   <input type="text" name="name[AR]" />
   <input type="text" name="name[FR]" />
   <input type="submit" value="submit" />
</form>

Теперь я хочу проверить этоесли какое-либо из этих полей имеет значение, тогда отправьте форму, иначе бросьте проверку

Итак, я попробовал Laravels required_if , но это не сработало.

public function rules()
{
    return [
        'name.*'        => 'required_if:name,1',
    ];
}

Так как сделать такую ​​проверку в laravel

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Я искал, но не мог найти встроенный способ сделать это.Вы можете создать свое собственное правило, используя

php artisan make:rule NonEmptyFiltered

, а затем определить правило как:

class NotEmptyFiltered implements Rule {
    public function passes($attribute, $value) {
        return !empty(array_filter($value));
    }

    public function message() {
        return ':attribute must have at least one non-null element';
    }
}

Затем вы можете сделать:

public function rules()
{
    return [
        'name' => [ new NonEmptyFiltered() ]
    ];
}
0 голосов
/ 18 мая 2018

Я считаю, что это должно сработать:

$rules = [
    'name.EN' => 'required_without_all:name.AR,name.FR',
    'name.AR' => 'required_without_all:name.EN,name.FR',
    'name.FR' => 'required_without_all:name.EN,name.AR',
];

Правило делает поле обязательным, если другие поля пусты https://laravel.com/docs/5.6/validation#rule-required-without-all.

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