假设一个人同时通过JSON发布一个模型的多个数据集,则可以使用Eloquent的Model :: create()函数插入这些数据集。但是,就我而言,我还需要验证此数据。
验证器仅将Request对象作为输入,据我所知,我无法仅使用一个模型来创建新的Request实例。
假定这将是输入数据(JSON),索引是浏览器的值,供浏览器了解哪些数据属于某个项目(因为它们在创建时未分配唯一的ID)
[
{
"index" : 1,
"name" : "Item 1",
"value" : "Some description"
},
{
"index" : 2,
"name" : "Item 2",
"value" : "Something to describe item 2"
},
(and so on)
]
根数组中的每个对象都需要通过同一验证器运行。它的规则在Model :: $ rules(公共静态数组)中定义。
是否可以对每个商品运行验证程序,并可能捕获每个商品的错误?
答案 0 :(得分:2)
您可以利用Validator
进行手动验证:
...
use Validator;
...
$validator = Validator::make(
json_decode($data, true), // where $data contains your JSON data string
[
// List your rules here using wildcard syntax.
'*.index' => 'required|integer',
'*.name' => 'required|min:2',
...
],
[
// Array of messages for validation errors.
...
],
[
// Array of attribute titles for validation errors.
...
]
);
if ($validator->fails()) {
// Validation failed.
// $validator->errors() will return MessageBag with what went wrong.
...
}
您可以阅读有关验证数组here的更多信息。