2012-03-02 4 views
-1

saveAllトランザクションで関連モデルにデータを保存しようとしているモデルを取得できますか?たとえば、ユーザーの目標が多すぎる場合は、コールします。関連するモデルでsaveAllコールを開始するモデルを取得する方法

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

あらかじめ定義されたアトリビュート、メソッド、またはメカニズムを使用してゴールモデルクラスでモデルユーザーを取得できますか?

事前におかげで、 ローランド。

編集: ユーザーがピクチャモデルを持ち、ポスト(ブログ)に対応するモデルがあるという仮説的な状況を仮定します。これらの両方にコメントすることができます。そのため、これらのモデルごとに個別のコメントモデルを作成するのではなく、1つの中心的なコメントモデルを作成します。関連は次のようになります。

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

ポストモデルの関連付けは似ていますが、唯一の違いは次のとおりです。

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

これらのモデルのいずれかをクエリすると、対応するコメントがobjectTypeフィールドを使用してDBテーブルから取得されます。

私が何かのようにするなら、よく構成され、保存されるコメントの一部を含む$ data配列と

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

、または

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

、省トランザクション中に、ある時点で、データは、コメントテーブルに保存されますコメントモデルを介して。 コメントモデルのbeforeSaveメソッドにコメントを保存しようとしているピクチャモデルであることがわかります。

+0

UserModel

var $hasMany = array('Goal'); 
GoalModel

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

明確にするために - あなたは保存しようとしているユーザデータ以外のどのようなデータを確認したいです - そのデータ/モデルに応じて、何かを行う/機能を実行する。 Y/n? – Dave

+0

質問を明確にすることはできますか?あなたがしようとしていることの例を挙げてください。私はそれがあなたの質問が投票された理由だと思います。あなたが何を求めているのかははっきりしていません。 –

答えて

0

CakePHPでは、コントローラにいる間にhasManyを使用してモデルを関連付けると、そのモデルにアクセスできます。がUserController

$this->Goal->myCrazyFunc(); 
//more stuff 
$this->User->saveAll($data); 
関連する問題