Правила проверки Laravel - насколько необязательны, но только если выполняется другое условие - PullRequest
0 голосов
/ 22 января 2019

Как я могу создать собственное правило, используя валидацию, чтобы поле могло быть обнуляемым, поскольку функция вызова вызывает true, в противном случае поле становится обязательным.

Конечно, я пытался использовать 'nullable', но даже если поле пустое, Валидация должна выполнить функцию checkAreasDiff (), чтобы проверить, что поле может быть пустым во время обновления.

В моем контроллере я создал функцию:

    private function validator_update(array $data) {

    \Validator::extend('areas_diff', function($attribute, $value, $parameters, $validator) {
        return checkAreasDiff();
    }, 'VALIDATOR AREAS_DIFF OK.');

    /**
     * RULES
     */
    $rules = [
        'fiscalizoarea'  => 'areas_diff',
    ];


    /**
     * Return \Validator
     */
    return \Validator::make($data, $rules, $msgs);
}

1 Ответ

0 голосов
/ 22 января 2019

Если я правильно понимаю вопрос, вы хотите, чтобы одно поле было обязательным, только если другое не является нулевым?

Для этого уже есть правило Laravel: required_with .

required_with:foo,bar,...

Проверяемое поле должно присутствовать и не быть пустым, только если присутствуют какие-либо другие указанные поля.

Или, если я возвращаю вашу логику кfront: required_without

required_without:foo,bar,...

Проверяемое поле должно присутствовать и не быть пустым, только если отсутствуют какие-либо другие указанные поля.

...