如何在laravel中验证json数据?

时间:2017-08-14 15:48:11

标签: php json laravel validation laravel-5.3

我的代码验证这样的数据:

public function register(Request $request)
{
    //echo '<pre>';print_r($request->all());echo '</pre>';die();
    $this->validate($request, [
        'email'=>'required',
        'password'=>'required',
        'data_cache.dataCache.id'=>'required|numeric'
        'data_cache.dataCache.quantity'=>'required|numeric'
    ]);
}

echo '<pre>';print_r($request->all());echo '</pre>';die();的结果如下:

Array
(
    [data_cache] => {"dataCache":{"id":112,"quantity":1,"information":"stamford bridge","request_date":"15-08-2017 02:30:00"},"expired":"2017-08-14T16:30:26.272Z"}
    [email] => chelsea@gmail.com
    [password] => 87654321
)

data_cache是​​json数据

在视图刀片上,我添加此项以显示消息验证:

@if ($errors->has('data_cache'))
    <span class="help-block">
        <strong>{{ $errors->first('data_cache') }}</strong>
    </span>
@endif

如果代码已执行,则没有显示消息验证

似乎验证json数据仍然是错误的

我该如何正确地做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用...

$dataCache = json_decode($request->data_cache);

$request->merge(['id' => $dataCache.dataCache.id, 'quantity' => $dataCache.dataCache.quantity]);

然后继续使用$ validate方法。

有一个字段可以检查验证中的数据字段是否是有效的json字符串,但这不是您需要的字符串。