Laravel $request->validated() 用于在请求主体中具有对象数据类型的数据
Laravel $request->validated() for data that has object datatype inside the request body
我已经使用 $request->validated()
来验证仅由普通键值对组成的请求主体,但是如果请求主体中包含对象怎么办?
示例:
// this works just fine
{
"key1": "value1",
"key2": "value2"
}
$request->validated()
的return将只针对key1和key2,但是当涉及到body时是这样的:
{
"key1": "value1",
"object1": {
"key2.1": "value2.2"
"key2.2": "value2.2"
}
}
当我尝试创建 object1
记录时使用:
object1::create($request->validated())
它抛出了一个错误,因为 $request->validated()
只验证任何正常的键值数据,并没有深入到对象的 属性。对此有什么想法吗?提前致谢。
试试这个:
$request->validate([
'object1.*.key2.1' => 'required',
'object1.*.key2.2' => 'required'
]);
'object1.*.key2.1' => 'required'
,object1是key,*是index
事实证明,您可以使用 request->validated()["object"]
在请求正文中获取经过验证的对象,因此您不再需要验证该对象中的每个键。
我已经使用 $request->validated()
来验证仅由普通键值对组成的请求主体,但是如果请求主体中包含对象怎么办?
示例:
// this works just fine
{
"key1": "value1",
"key2": "value2"
}
$request->validated()
的return将只针对key1和key2,但是当涉及到body时是这样的:
{
"key1": "value1",
"object1": {
"key2.1": "value2.2"
"key2.2": "value2.2"
}
}
当我尝试创建 object1
记录时使用:
object1::create($request->validated())
它抛出了一个错误,因为 $request->validated()
只验证任何正常的键值数据,并没有深入到对象的 属性。对此有什么想法吗?提前致谢。
试试这个:
$request->validate([
'object1.*.key2.1' => 'required',
'object1.*.key2.2' => 'required'
]);
'object1.*.key2.1' => 'required'
,object1是key,*是index
事实证明,您可以使用 request->validated()["object"]
在请求正文中获取经过验证的对象,因此您不再需要验证该对象中的每个键。