Laravel 5.5 json验证规则失败
我已将以下JSON发布到我的laravel 5.5应用程序中Laravel 5.5 json验证规则失败,json,laravel,api,laravel-5,laravel-5.5,Json,Laravel,Api,Laravel 5,Laravel 5.5,我已将以下JSON发布到我的laravel 5.5应用程序中 { "code": "asdfsadf", "amount": "1000" } 我的验证规则如下所示: $validator = Validator::make($request->all(), [ 'amount' => 'required|numeric|json', 'code' => 'required|alpha_num|json',
{
"code": "asdfsadf",
"amount": "1000"
}
我的验证规则如下所示:
$validator = Validator::make($request->all(), [
'amount' => 'required|numeric|json',
'code' => 'required|alpha_num|json',
]);
amount字段总是通过JSON验证,但是代码字段总是在传递除int值以外的任何值时通过。我在web上找不到任何解决方案。没有在laravel上验证json的
json
验证规则。您必须为此构建自己的自定义验证器
如下所示:
$data = json_decode($request->all(), true);
$rules = [
'amount' => 'required|numberic',
'code' => 'required|alpha_num'
];
$validator = Validator::make($data, $rules);
if ($validator->passes()) {
// ok validation
} else {
//handle errors
dd($validator->errors()->all());
}
文档表明存在以下问题:规则是数据必须是有效的
JSON
字符串。由于code
和amount
的值不是JSON数据,因此此规则不适用。@Nirajsha此方法实际上非常方便构建api。我同意,它非常方便构建api,但不幸的是此规则与此特定问题无关。dd($request->all())的结果是什么代码>?这就是您看到的实际验证错误?什么是dd($validator->errors())代码>显示?