首页 > 解决方案 > Laravel $request->validated() 用于请求正文中具有对象数据类型的数据

问题描述

我曾经$request->validated()验证只包含普通键值对的请求正文,但是如果请求正文中有一个对象怎么办?

例子:

// this works just fine
{
    "key1": "value1",
    "key2": "value2"
}

的返回$request->validated()将仅适用于 key1 和 key2,但是当涉及到这样的主体时:

{
    "key1": "value1",
    "object1": {
        "key2.1": "value2.2"
        "key2.2": "value2.2"
     }
}

当我尝试使用以下方法创建object1记录时:

object1::create($request->validated())

它抛出了一个错误,因为$request->validated()它只验证任何正常的键值数据并且没有深入到对象的属性中。对此有任何想法吗?提前致谢。

标签: phplaravelframeworks

解决方案


尝试这个 :

$request->validate([

    'object1.*.key2.1' => 'required',
    'object1.*.key2.2' => 'required'

]);

'object1.*.key2.1' => 'required',object1是key,*是index


推荐阅读