Как создать правило, чтобы игнорировать все проверки формы запроса? - PullRequest
1 голос
/ 13 мая 2019

Я новичок в Laravel.У меня есть форма с проверкой, но эту форму можно сохранить как черновик.В этом случае мне нужен способ игнорировать все правила проверки.Кто-нибудь может помочь мне с этим?

Класс ValidacaoProcesso расширяет FormRequest {

/**
 * Determine if the user is authorized to make this request.
 *
 * @return bool
 */
public function authorize() {
    return true;
}

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules() {
    return [
        'NUP' => 'required:T_PROCESSO',
        'dt_recebimento' => 'required',
        'hora_recebimento' => 'required',
        'CPF' => 'required',
        'nome' => 'required',
        'sentenca_judicial' => 'required',
        'tipo_pessoa' => 'required',
        'prioridade' => 'required',
    ];
}
}

Ответы [ 3 ]

0 голосов
/ 13 мая 2019

Вот как я понимаю вашу проблему:

Вы хотите, чтобы проверка была на месте, если форма не сохраняется как черновик, однако, если она сохраняется как черновик,вы не хотите, чтобы валидация была на месте

Вот как я предлагаю вам сделать это:

Метод 1

Прежде всего вам нужно иметь какое-тофлаг, переданный из внешнего интерфейса при отправке формы, который может указать, следует ли считать сохраненную форму черновиком или нет.Допустим, этот флаг является «черновым».Теперь, основываясь на этом флаге, можно добавить или удалить проверку, такую ​​как:

$draft = $request->input('draft');
if (!$draft) {
   //apply validation rules
}

Метод 2

Однако иногда невозможно иметь этот «черновой» флаг, в этих случаях выможно просто использовать валидатор, и если он не работает, сохраните форму как черновик, поскольку одна из валидаций пошла не так, вместо того, чтобы возвращать ошибку, например так:

$validationArray = [
    'NUP' => 'required:T_PROCESSO',
    'dt_recebimento' => 'required',
    'hora_recebimento' => 'required',
    'CPF' => 'required',
    'nome' => 'required',
    'sentenca_judicial' => 'required',
    'tipo_pessoa' => 'required',
    'prioridade' => 'required',
];

$draft = false;
$validator = Validator::make($request->all(), $validationArray);
if ($validator->fails()) {
    $draft = true;
}
//if $draft is true then proceed with form as draft

Надеюсь, это поможет,

0 голосов
/ 27 мая 2019

Спасибо за помощь.Я не знал, что могу использовать запрос ввода внутри класса.Я решил использовать что-то вроде этого:

public function rules() {
    if ($this->draft == "Y") {
        return [];
    }
    return [
        'NUP' => 'required:T_PROCESSO',
        'dt_recebimento' => 'required',
        'hora_recebimento' => 'required',
        'CPF' => 'required',
        'nome' => 'required',
        'sentenca_judicial' => 'required',
        'tipo_pessoa' => 'required',
        'prioridade' => 'required',
    ];
}
0 голосов
/ 13 мая 2019

Просто закомментируйте массив правил или верните пустой массив в вашем методе rules(), если вы хотите игнорировать проверку.Лучше, может быть, вообще не использовать ValidacaoProcesso.Просто замените его простым Request объектом, в котором вы его используете

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