Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 验证数组中的Laravel嵌套规则_Arrays_Laravel_Validation_Nested_Rules - Fatal编程技术网

Arrays 验证数组中的Laravel嵌套规则

Arrays 验证数组中的Laravel嵌套规则,arrays,laravel,validation,nested,rules,Arrays,Laravel,Validation,Nested,Rules,我和Laravel在一起,我想编写优雅的验证规则:)使用这个框架真的很容易,但我不知道在面对1:n关系时如何处理这个问题 我有两个资源,用户和联系人。一个用户可以有多个联系人 所以,我想要一个表格,您可以填写所有用户字段和所有联系人信息。 为此,我想写一个这样的请求: ` // POST: users { 'name': 'UserName', 'email': 'user@mail.com' 'contacts': [

我和Laravel在一起,我想编写优雅的验证规则:)使用这个框架真的很容易,但我不知道在面对1:n关系时如何处理这个问题

我有两个资源,用户联系人。一个用户可以有多个联系人

所以,我想要一个表格,您可以填写所有用户字段和所有联系人信息。 为此,我想写一个这样的请求:

` // POST: users
    {
        'name': 'UserName',
        'email': 'user@mail.com'
        'contacts': [
            [
                'email' => 'contac_1@mail.com',
                'contact_type_id => 1
            ],
                        [
                'email' => 'contac_2@mail.com',
                'contact_type_id => 2
            ],

    }
`
用户请求:

public function rules()
    return [
        'name' => 'required|string',
        'email' => 'required|email|unique:exists:users,id',
        'contacts' => 'array',
        'contacts.*' => new ContactRequest() // This is the problem
    ]
我的问题是:如何应用这种类型的验证?特别是在使用数组时,如何进行模块化验证以应用嵌套资源的验证?还是我应该制定一个联系规则

编辑:

我希望前端发送表单如下所示:

` // POST: users
    {
        'name': 'UserName',
        'email': 'user@mail.com'
        'contacts': [
            [
                'email' => 'contac_1@mail.com',
                'contact_type_id => 1
            ],
                        [
                'email' => 'contac_2@mail.com',
                'contact_type_id => 2
            ],

    }
`
仅此而已,
谢谢

我们有一个API,每个请求或post/补丁都有100个结果。 我们仍然使用:

'data.relationships.users.data.*.id' => [
    'string',
    'unique:api_groups,name,' . ($this->route('group')->id ?? 0),
]
那你呢

'contacts.*.email' => 'required|email|unique:exists:users,id'

工作完美。它不会变得更复杂或更复杂。

请您展示一个表单示例,以及用户如何使用javascript或单独的表单添加其他联系人详细信息?
contacts.*。电子邮件将非常有用!抱歉,我添加了希望接收的汇总表单数据:P我希望对“联系人”输入数组应用验证。我可以保持验证模块化吗?要使UserRequest.php尽可能简单,尤其是在其他请求中重复使用相同的联系人验证,我不喜欢
联系人。*.email
,因为此验证将(而且已经更复杂),
联系人。*.email
联系人。*.Contact\u type\u id
联系人。*…
,等等,此联系人验证将在多个资源中使用,因此,我将有重复的代码。这就是我想要避免的模块化尝试。。。我希望使用一行代码,比如我的示例:如何验证联系人数组是否包含不同的字段,例如email1、contact_type_id1、email2、contact_type_ID2当它是一个或两个简单字段时很好,但想象一下当它变大时会怎样。例如,5个字段,
联系人。*.email
联系人。*.field_2
联系人。*.field_3
联系人。*.field_4
联系人。*.field_5
,等等。。此外,这将在多个端点中使用(不仅在用户端点、Model2、Model3等中)。将会有很多重复的代码:(不,没有重复的代码,因为您使用表单请求。公共函数storeUser(StoreBlogPost$request){//Do stuff}公共函数storeModel2(StoreBlogPost$request){//Do stuff}