Sulu\Bundle\ContactBundle\Entity\ContactRepository::findByAccountId PHP Method

findByAccountId() public method

public findByAccountId ( $accountId, $excludeContactId = null, $arrayResult = true, $onlyFetchMainAccounts = true )
    public function findByAccountId($accountId, $excludeContactId = null, $arrayResult = true, $onlyFetchMainAccounts = true)
    {
        $qb = $this->createQueryBuilder('c');
        // Only fetch main accounts
        if ($onlyFetchMainAccounts) {
            $qb->join('c.accountContacts', 'accountContacts', 'WITH', 'accountContacts.main = true');
        } else {
            $qb->join('c.accountContacts', 'accountContacts');
        }
        $qb->join('accountContacts.account', 'account', 'WITH', 'account.id = :accountId')->setParameter('accountId', $accountId);
        if (!is_null($excludeContactId)) {
            $qb->where('c.id != :excludeId')->setParameter('excludeId', $excludeContactId);
        }
        $query = $qb->getQuery();
        if ($arrayResult) {
            return $query->getArrayResult();
        } else {
            return $query->getResult();
        }
    }

Usage Example

Exemplo n.º 1
0
 /**
  * Returns contacts by account id.
  *
  * @param $id
  * @param $locale
  * @param bool $onlyFetchMainAccounts
  *
  * @return array|null
  */
 public function findContactsByAccountId($id, $locale, $onlyFetchMainAccounts = false)
 {
     $contactsEntities = $this->contactRepository->findByAccountId($id, null, false, $onlyFetchMainAccounts);
     if (!empty($contactsEntities)) {
         $contacts = [];
         foreach ($contactsEntities as $contact) {
             $contacts[] = new Contact($contact, $locale, $this->tagManager);
         }
         return $contacts;
     }
     return;
 }