我想知道是否可以在使用登录用户的ID的模型中创建hasMany关系。CakePHP中的其他模型的HasMany关系和ID
例如: 一个提示有很多投票(来自不同的用户)。这很容易:
public $hasMany = array(
'TipVoting' => array(
'className' => 'TipVoting',
'foreignKey' => 'tip_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
));
现在我想获得所有提示,但想知道登录用户是否已经投票了此提示。所以我想创建一个Realtionship,如下所示:
public $hasMany = array(
'MyTipVoting' => array(
'className' => 'TipVoting',
'foreignKey' => 'tip_id',
'dependent' => false,
'conditions' => array('TipVoting.user_id' => $loggedinUser_id),
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
如何将$ loggedinUser_id加入此模型?或者这是实施这个问题的不好方法?我应该去找一个TipVoting模型的单独的发现吗?
任何想法?
谢谢!
男人,你让我的一天!感谢您指出了这一点。这正是我所期待的! 这是我对我的问题的解决方案: $ this-> Tip-> find('all',array( 'contains'=> array('TipVoting'=> array( 'conditions'=> array(' TipVoting.user_id'=> $ this-> Auth-> user('id'))) ) )); 再次感谢! – chris 2010-09-02 09:02:11
没问题。 Containable行为对于使用CakePHP非常重要,应该在手册中再强调一下。另一个令人敬畏的Cake类是Set - 它允许您将几个Cake样式的数组合并在一起,并基于不同的键合并。 – 2010-09-02 15:25:03