2015-02-11 51 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')    
    )));}