2011-01-19 29 views
1

問題点:関連モデルで 条件を設定したいとします。どのように 私はそれを行うのですか?CakePHP - 関連モデルの条件

私のCakePHPアプリケーションの関連付けに問題があります。

団体は次のようになります。

Event has many EventSum belongs to Account has many AccountUser belongs to User 
Event has many EventDebt ... (the rest is the same as above) 
Event also belongs to User 

アプリケーションはPHPでのプライベートecononmyのプログラムであり、CakePHPのフレームワークを使用しています。

イベントは、財務イベント、購入、アカウント間の取引などです。日付、タイトル、ユーザーに関する情報しか保持していません。

EventSumアカウントとどのくらいの引き落としやクレジット(1列で、ちょうど正または負)の情報を保持しています。

アカウントは、アカウントのタイトルに関する情報を保持します。

AccountUserアカウントのIDとユーザーを保持しています。これは


だから、今、私はユーザーがに関連付けられているアカウントものに基づいてイベントを取得したいことを示しています。これどうやってするの?

私は次の情報を取得したい: EventSumとともにイベント。イベントは、ユーザーがアクセスできるアカウントからフェッチされます。任意の助け

おかげで、 /マグナス

答えて

1

あなたは以下の条件を使用してEventクラスを照会することができるようにしたいように思え:

'Account.user_id =' => $userId 

は私の仮定が正しいですか?

関連するモデルの条件を必要とするクエリを実行するときは、Containableビヘイビア(CakePHP 1.3)または「リンク可能」ビヘイビア(here)を使用できます。その団体の両方の場合EventSumEventDebtの両方を「を含む」するときに問題が発生する可能性がある

$condition = array('Account.user_id =' => $userId); 
$contain = array('EventSum' => array('Account'), 'EventDebt' => array('Account')); 
$result = $this->Event->find('all', compact('condition', 'contain')); 

注:あなたはこれをしようとすると(最初にモデルにContainable行動を添付してください)何が起こる

Accountには同じエイリアス名を使用します。

+0

遅くとも申し訳ありませんが、私はそれを自分自身で解決できます。あなたの答えは正しいとマークされています。お返事をありがとうございます。 – Magnus

関連する問題