Validation 如何创建忽略所有表单请求验证的规则?
我是拉威尔的初学者。我有一个带有验证的表单,但该表单可以保存为草稿。在这种情况下,我需要一种忽略所有验证规则的方法。有人能帮我吗 类ValidacaoProcesso扩展FormRequest{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
/**
* 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上的此线程。谢谢!