我遇到了CakePHP的问题。我尝试使用saveAll()函数设置一些数据。我json_decode以下JSON字符串并将结果传递给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'Fulti-to-Many表和CakePHP不会将这些存储在数据库中。
奇怪的是:当我将PeopleOption数组更改为JSON对象时,如下所示:
"PeopleOption": {
"id":1
}
效果非常好,但显然只有一个记录。
如何传递必须存储在多对多关系表'PeopleOption'中的id数组?
答案 0 :(得分:0)
虽然我还没有得到答案,但我自己找到了解决方案。使用saveAll()函数在多对多表中插入id的数组时,您应该在JSON对象中使用嵌套数组,如下所示:
"PeopleOption": {
"PeopleOption":[
3,
14,
7,
etc,
]
}
希望这有助于任何遇到我遇到的问题的人!