我在规则函数中有一个简单的规则数组:
return [
'anumber' => 'required|numeric'
];
我用getValidatorInstance方法填充此方法:
request()->merge(['anumber' => IdsCompany::getNumDBempty()]);
getNumDBempty()
正在按预期工作,并返回int
或false
,我希望验证程序仅在函数返回数字时接受请求。
控制器方法:
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。
答案 0 :(得分:0)
好吧我明白了:
似乎添加新变量的正确方法是:
$data['anumber'] = IdsCompany::getNumDBempty();
然后将其添加到请求中: request() - &gt; merge(['anumber'=&gt; IdsCompany :: getNumDBempty()]);