コントローラーは、受信した要求データをループして対応するレコードを作成することにより、1 つ以上のレコードを作成/保存する必要があります。あなたは疑問に思うかもしれません:saveAll()
一度にすべてを使用して保存しないのはなぜですか。簡単に言えば、特定のレコードは、同じループで作成された他のレコードの ID を参照する必要があるということです (それらの ID はまだ存在しません)。
私のループは最初のレコードを正常に作成します。ループの後続の反復では、使用時に新しく作成されたレコードを「見る」ことができませんfind()
。返された配列をエコーする場合、結果はそこにありますが、新しく作成されたものはありません。なんで?CakePHP の魔法は、ある種のキャッシングのために新しいレコードを利用できないようにしていますか?
最新のレコードを含まない私のコードは次のとおりです。
$newest_parent_question = $this->Question->find('first', array(
'conditions'=>array('Question.perm_id'=>$parent_question['Question']['perm_id']),
'order' => array('Question.created DESC')
)
);
ただし、新しいレコードは次のように返されます。
$newest_parent_question = $this->Question->find('all');