Laravel 5.5 json验证规则失败

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',

我已将以下JSON发布到我的laravel 5.5应用程序中

{
    "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())显示?