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

Validation 如何创建忽略所有表单请求验证的规则?,validation,laravel-5,Validation,Laravel 5,我是拉威尔的初学者。我有一个带有验证的表单,但该表单可以保存为草稿。在这种情况下,我需要一种忽略所有验证规则的方法。有人能帮我吗 类ValidacaoProcesso扩展FormRequest{ /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the

我是拉威尔的初学者。我有一个带有验证的表单,但该表单可以保存为草稿。在这种情况下,我需要一种忽略所有验证规则的方法。有人能帮我吗

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

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

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

如果表单未保存为草稿,则需要进行验证;但是,如果表单保存为草稿,则不需要进行验证

我建议你这样做:

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

我希望这会有帮助,

谢谢你的帮助。我不知道我可以在类中使用输入请求。我使用以下方法解决了问题:

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

谢谢你的帮助。我不知道我可以在类内使用输入请求。我使用类似的方法解决了问题:@IgordaSilvaCoelho如果我的答案帮助你解决了问题,请将其标记为已接受,以便我们可以关闭stackoverflow上的此线程。谢谢!