2015-02-11 52 views
0

我在用户和项目之间有一个HasMany穿透关系。问题是 - 我想检查关系是否存在(意思是在同一行中找到完全user_id和item_id)来检查所采取的操作是否添加或删除该关系。查找HasMany穿透关系是否存在 - CakePHP

问题似乎出现在这行代码中,无论用户登录为何,总是计算为大于0的代码 - 虽然如果我登录的用户数量没有upvotes,则应该找不到任何内容:

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

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

回答

0

试试这个

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

谢谢 - 问题是,它是一个索引 - 所以我需要找到每个项目,如果关系存在与用户。我怎么做?我尝试了set()的foreach,它不起作用。 – itamar 2015-02-11 04:46:32

0

u2460470的代码是正确的。你需要循环之间的项目:

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