Laravel表单请求验证不适用于getValidatorInstance()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel表单请求验证不适用于getValidatorInstance()相关的知识,希望对你有一定的参考价值。

我在规则函数中有一个简单的规则数组:

return [
    'anumber'  => 'required|numeric'
];

我用这种方式填充getValidatorInstance方法:

request()->merge(['anumber' => IdsCompany::getNumDBempty()]);

getNumDBempty()按预期工作,并返回intfalse,我希望验证器只接受请求,如果函数返回一个数字。

控制器方法:

public function store(StoreIdsCompanyRequest $request, IdsCompany $ids_company_reg)
{

    //$ids_company_reg =  new IdsCompany;       

    $data   = request()->all();

    $user = User::find(auth()->id());

    $numEmpresasAsesor = DB::table('accesses')
        ->where('userId', '=', auth()->id())
        ->distinct('companyId')->count();

    if ($numEmpresasAsesor < ($user->consultant->asesorLimiteEmpresas))
    {
        if($ids_company_reg->createCompany_ForConsultant($data,$user->id))
        {           
            return redirect()->route('consultants.companies.index')->with('success',trans('textos.SACC_registro_guardado'));
        }
        else
        {                   
            return redirect()->route('consultants.companies.create')->withInput()->withErrors($ids_company_reg->errors);
        }

    }
    else
    {   
        $ids_company_reg->errors = new IlluminateMessageBag;
        $ids_company_reg->errors->add('error', trans('textos.CCF_numero_empresas')); 
        return redirect()->route('consultants.companies.create')->withInput()->withErrors($ids_company_reg->errors);
    }
}

问题是anumber与请求合并,但它一直告诉我anumber是强制性的。

我一直在争取和搜索几天,我没有找到任何线索,为什么验证器不会对getValidatorInstance()中合并的变量起作用。 (我试图在其他FormRequest中验证这一点,结果是一样的,他们忽略了它,因为变量从来没有,但是请求里面有它。)

在Laravel 5.5 atm工作,并计划在我的表单请求完成并正常工作时升级5.6。

答案

好吧,我想通了:

似乎添加新变量的正确方法是:

$data['anumber'] = IdsCompany::getNumDBempty();

并将其添加到请求中:request() - > merge(['anumber'=> IdsCompany :: getNumDBempty()]);

以上是关于Laravel表单请求验证不适用于getValidatorInstance()的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 请求验证不适用于邮递员请求

Laravel MIME 验证不适用于 .doc 文件

正则表达式验证规则,以避免特殊字符不适用于 laravel 中的文本字段

@Valid 表单验证不适用于 Thymeleaf Spring Boot

Dropzone处理队列不适用于服务器端验证

Yii 客户端验证不适用于 ajax 加载的表单