2012-03-02 73 views
-1

是否有可能在SaveAll事務中獲取試圖將數據保存到相關模型的模型。例如,用戶有很多目標,我撥打電話;如何獲得在相關模型中啓動saveAll調用的模型

$this->User->saveAll($data); 

我可以使用一些預定義的attritbute,方法或機制獲得目標模型類中的模型用戶嗎?

感謝您的提前幫助, 羅蘭。

編輯: 假設一個假設的情況,其中用戶有圖片,圖片模型和帖子(博客)與相應的模型。這兩者都可以評論。因此,我不是爲每個模型創建單獨的評論模型,而是創建一箇中心評論模型。該協會可能看起來像這樣;

//In the Picture model 
    var $hasMany = array(
`` 'Comment' => array(
     'className' => 'Comment', 
     'foreignKey' => 'picture_id', 
     'conditions' => array('Comment.objectType' => 'picture') 
    )` 
    ); 

Post模型的關聯會類似,唯一的區別是;

'conditions' => array('Comment.objectType' => 'post') 

有了這個結構,如果我要查詢這些模型中的任何一個,它們的相應註釋將使用objectType字段從數據庫表中檢索。

如果我要做類似的事情;

$this->Picture->saveAll($data); 

,或者

$this->Post->saveAll($data); 

與$ data數組結構良好,含註釋部分,在時間上的節約交易過程中進行保存,在某些時候,數據將被保存到的意見表通過評論模式。 我想要的是能夠知道它是在評論模型的beforeSave方法中試圖保存評論的圖片模型,即;

//In the Comment mode 
    beforeSave() { 
     //Post model is trying to save a comment here 
    } 
+0

爲了澄清 - 你想讓它檢查什麼比用戶數據它試圖挽救其他數據 - 並根據該數據/模型,執行某些操作/運行某個功能。 Y/N? – Dave 2012-03-02 14:42:56

+0

你能澄清你的問題嗎?舉一個你想要做什麼的例子。我認爲這就是爲什麼你的問題被拒絕投票。目前還不清楚你在問什麼。 – 2012-03-03 04:10:02

回答

0

隨着CakePHP的,如果你使用的hasMany,你的模型相關聯,而你是在控制器,你可以訪問該模型。

在的usermodel

var $hasMany = array('Goal'); 

在GoalModel

function myCrazyFunc() { 
    //crazy stuff happens here 
} 

在UsersController

$this->Goal->myCrazyFunc(); 
//more stuff 
$this->User->saveAll($data);