是否有必要验证输入是否具有类型string
并且在Laravel的验证器中它不为空?
示例:
$v = Validator::make(['myinput' => $request->input('myinput')], ['myinput' => 'integer|min:1']);
if (!$v->fails()) {
$someModel->integer_field = $request->input('myinput');
}
不需要字段,如果用户提供此POST请求
'field' => ''
然后Mysql抱怨无法分配给整数字段的空字符串。
此外,如果我提供空数组作为输入
'field' => []
然后它也失败了。
所以我的问题是:如何为NOT必填字段编写健壮的验证器(例如,如果字段存在,那么它必须是:
1. For integers: 1,2,3,4,... (+ null value if column is nullable),
so any other supplied value will not pass
(like boolean true which can be converted to 1 automatically but should not)
)
2. For string: '', 'example', ... (+ null value if column is nullable)
以下是示例https://github.com/laravel/framework/issues/10747
但sometimes|required|string
仍为空数组传递......