查找是否存在HasMany Through关系 - CakePHP

时间:2015-02-11 03:36:18

标签: php cakephp

我在User和Item之间有一个HasMany Through关系。问题是 - 我想检查关系是否存在(意味着在同一行上找到完全相同的user_id和item_id)以检查所采取的操作是添加还是删除该关系。

问题似乎出现在这行代码中,无论我登录的是哪个用户,总是评估为大于0的代码 - 如果我在没有用户的情况下记录下来,它应该找不到任何内容upvotes:

$something = $this->Upvote->find('count', array('Upvote.item_id' => $this->request->data['item_id'], 'Upvote.user_id' =>  AuthComponent::user('id')));

基本上我想要做的就是找到登录用户和每个项目之间是否存在HasMany Through关系。我该怎么做?

2 个答案:

答案 0 :(得分:0)

试试这个

$something = $this->Upvote->find('count', 
       array( 'conditions'=> 
               array('Upvote.item_id' => $this->request->data['item_id'],
                    'Upvote.user_id' =>  AuthComponent::user('id')
               )
     )
);

答案 1 :(得分:0)

u2460470的代码是正确的。您需要在Items:

之间循环
foreach ($items as $item){ 
 $upvotes = $this->request->find('count',array('conditions'=>
      array('Upvote.item_id' => $item,
                'Upvote.user_id' =>  AuthComponent::user('id')               
   )));}