如何创建忽略所有表单请求验证的规则?

时间:2019-05-13 12:35:10

标签: validation laravel-5

我是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 :(得分:0)

如果要忽略验证,只需注释掉rules数组或在rules()方法中返回空数组。更好的方法可能是根本不使用ValidacaoProcesso。只需将其替换为使用中的简单Request对象

答案 1 :(得分:0)

以下是我对您的问题的理解:

  

如果未将表单另存为草稿,则希望进行验证;但是,如果将表单另存为草稿,则不希望进行验证。

这是我建议您执行的操作:

方法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

我希望这会有所帮助,

答案 2 :(得分:0)

感谢您的帮助。我不知道我可以在Class中使用输入请求。我解决了这样的事情:

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',
    ];
}