【发布时间】:2020-06-05 19:14:55
【问题描述】:
我有一个名为“min”的表单输入,在我的控制器中,我使用了验证数字,用户必须在其中只输入数字,如果用户将其留空,则将“minimum”的值设置为零并发布到我的数据库
这是我的控制器:
$rules = [
'user_id' => '',
'name' => 'required|max:255|min:2',
'description' => 'required|min:10|max:1000',
'price' => 'required|numeric',
'min' => 'numeric',
];
$errormessages = [
'required' => ':attribute is required !',
'max' => ':attribute max size exceded ',
'min' => ':attribute is too short',
'numeric' => ':attribute must be numeric',
];
$this->validate($request, $rules, $errormessages);
$userproduct = new Userproduct();
$userproduct->user_id = auth()->id();
$userproduct->name = $request->name;
$userproduct->description = $request->description;
$userproduct->price = $request->price;
if (!empty($request->input('min')))
{
$userproduct->min = $request->min;
}
else {
$userproduct->min = 0;
}
$userproduct->save();
return redirect('/profile/products')->with('message', 'Added sucsessfuly');
我尝试了太多方法,例如: if ($request->has('min') if ($request->filled('min')
但是当我提交表单时,它给了我一个错误“最小值必须是数字”,它似乎仍然在发布 null!
请帮我解决这个问题
【问题讨论】:
-
使用
nullable规则接受空字符串。 -
@Majid 这仅仅意味着您正在使用 来接受控制器中的数字。这不起作用,您应该将表单字段类型更改为“数字”或更改控制器规则。
标签: laravel