2013-06-18 103 views
2

我正在將數據保存到我的表中,但我想獲取已保存的HABTM記錄的ID。從HABTM獲取已保存的ID保存

節能陣列的樣子:

Array 
(
    [User] => Array 
     (
      [id] => 1 
     ) 

    [Following] => Array 
     (
      [follows_uid] => 36 
     ) 

) 

因此它保存在followers_users表中的新記錄,與1的用戶ID和用戶ID被跟隨的人是36.對於每一個新的記錄有一個新的ID,但我不能使用$this->User->getInsertID();$this->User->getLastInsertID();,因爲它會返回[User]的ID。

保存和運行pr($this->User->FollowersUser);後,我得到這個:

AppModel Object 
(
    [useDbConfig] => default 
    [useTable] => followers_users 
    [id] => 
    [data] => Array 
     (
      [FollowersUser] => Array 
       (
        [16] => 
       ) 

     ) 

在此之際,從着眼於數據庫中的實際插入的id爲9

任何想法,將不勝感激!

+0

sry努力嘗試,但沒有找到方法。稍後會回到這個問題。 –

+0

謝謝@AmarBanerjee – Tim

回答

0

如果你只是想找到新的HABTM字段的ID,我只是做一個簡單的find調用。它可能不是最有效的方式,但它會有保證的結果:

$this->User->FollowersUser->find('first', array(
    'FollowersUser.user_id'  => $user_id, 
    'FollowersUser.follows_uid' => $followers_id 
    )) 
+0

謝謝,我可能最終會這樣做,因爲似乎沒有其他合乎邏輯的方法...... !! – Tim

+1

的確,這看起來並不符合邏輯,但這是有保證的方式。也許你可以調整相應模型的'afterSave'函數並返回id,或者在封裝這個解決方案的模型中創建一個新函數。這將是相同的功能解決方案,但更漂亮。 – Nunser