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
}
それは完全にうまく機能しますが、明らかに1つのレコードに対してのみです。
多対多の関係テーブル「PeopleOption」に格納する必要のあるIDの配列を渡すにはどうすればよいですか?