0

我遇到了 CakePHP 的问题。我尝试使用 saveAll() 函数设置一些数据。我对以下 JSON 字符串进行 json_decode 并将结果传递给 saveAll() 方法。

{
    "SurveyAnswer":{
        "data":25,
        "data":45,
        "data":100
    },
    "GpsObservation":[
    {
        "latitude":1,
        "longitude":1
    },
    {
        "latitude":1,
        "longitude":1
    }
    ],
    "PeopleOption":[
    {
        "id":1
    },
    {
        "id":2
    }
    ]
}

“PeopleOption”表是“SurveyAnswer”和“PeopleOptions”之间的多对多关系表。如您所见,我将一些数据存储在 SurveyAnswer 中,效果很好。但是,用户可以选择多个人,因此“PeopleOption”多对多表和 CakePHP 不会将这些人存储在数据库中。

奇怪的是:当我将 PeopleOption 数组更改为 JSON 对象时,如下所示:

"PeopleOption": {
    "id":1
}

它工作得很好,但显然只适用于一张唱片。

如何传递必须存储在多对多关系表“PeopleOption”中的 id 数组?

4

1 回答 1

0

虽然我还没有得到答案,但我自己找到了解决方案。使用 saveAll() 函数在多对多表中插入 id 数组时,您应该在 JSON 对象中使用嵌套数组,如下所示:

"PeopleOption": {
   "PeopleOption":[
       3,
       14,
       7,
       etc,
   ]
}

希望这可以帮助任何遇到我遇到的问题的人!

于 2012-06-18T18:54:17.187 回答