我的代码验证这样的数据:
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数据仍然是错误的
我该如何正确地做到这一点?
答案 0 :(得分:1)
您可以尝试使用...
$dataCache = json_decode($request->data_cache);
$request->merge(['id' => $dataCache.dataCache.id, 'quantity' => $dataCache.dataCache.quantity]);
然后继续使用$ validate方法。
有一个字段可以检查验证中的数据字段是否是有效的json字符串,但这不是您需要的字符串。