2013-05-02 20 views
0

我的控制器需要創建/保存一個或多個記錄,方法是循環接收到的請求數據並創建相應的記錄。您可能想知道:爲什麼不使用saveAll()並一次保存它們。簡短的回答是,某些記錄需要引用在同一個循環中創建的記錄的其他記錄(並且這些ID尚不存在)。CakePHP:新保存的記錄不可見查找()

我的循環成功創建第一條記錄,當我使用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'); 

回答

1

有一些問題與您的查詢。可能$parent_question['Question']['perm_id']是錯誤的。沒有任何CakePHP會這樣做,這會使您的記錄無法找到。

只需調試您的變量,以確保您使用正確的編號構建正確的查詢,並且您將很好。

(沒有看到你建立ID的實際方式,這是不可能的幫助以外)

+0

你是對的。謝謝! – emersonthis 2013-05-02 02:59:45

+0

沒問題:) – Dave 2013-05-02 03:39:22