У меня есть простой массив правил в функции правил:
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, когда мой запрос формы будет выполнен и работает.
Ну, я понял это:
Кажется, что правильный способ добавления новых переменных таков:
$data['anumber'] = IdsCompany::getNumDBempty();
И это, чтобы добавить его к запросу:
request () -> merge ([‘anumber’ => IdsCompany :: getNumDBempty ()]);
Других решений пока нет …