CakePHP - 关联模型的条件

时间:2011-01-19 18:17:25

标签: php cakephp cakephp-1.3

  

问题简而言之:我想设置   关联模型的条件。怎么样   我会这样做吗?

我的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 包含有关帐户的信息以及借记或贷记的金额(在一栏中,只是正面或负面)。

帐户包含有关帐户标题的信息。

AccountUser 包含帐户用户的ID。这表明


所以,现在我想根据与用户关联的帐户来获取事件。我怎么能这样做?

我想获取以下信息: 活动,以及EventSum。事件从用户可以访问的帐户中获取。

感谢您的帮助, /马格努斯

1 个答案:

答案 0 :(得分:1)

您似乎希望能够在以下条件下查询Event班级:

'Account.user_id =' => $userId

我的假设是否正确?

在执行需要相关模型条件的查询时,您可以使用Containable行为(CakePHP 1.3附带)或'可链接'行为(可以找到here

尝试此操作时会发生什么(务必先将Containable行为附加到您的模型上):

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

请注意,如果EventSumEventDebt的关联都与Account使用相同的别名,则“{包含”{{1}}和{{1}}时可能会遇到问题。