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

findByIds() public method

public findByIds ( $ids )
    public function findByIds($ids)
    {
        if (count($ids) === 0) {
            return [];
        }
        // Create basic query
        $qb = $this->createQueryBuilder('u')->leftJoin('u.accountContacts', 'accountContacts')->leftJoin('accountContacts.account', 'account')->leftJoin('account.mainContact', 'mainContact')->leftJoin('u.contactAddresses', 'contactAddresses')->leftJoin('contactAddresses.address', 'addresses')->leftJoin('addresses.country', 'country')->leftJoin('addresses.addressType', 'addressType')->leftJoin('u.locales', 'locales')->leftJoin('u.emails', 'emails')->leftJoin('emails.emailType', 'emailType')->leftJoin('u.faxes', 'faxes')->leftJoin('faxes.faxType', 'faxType')->leftJoin('u.notes', 'notes')->leftJoin('u.phones', 'phones')->leftJoin('phones.phoneType', 'phoneType')->leftJoin('u.tags', 'tags')->leftJoin('u.urls', 'urls')->leftJoin('urls.urlType', 'urlType')->leftJoin('u.title', 'title')->leftJoin('accountContacts.position', 'position')->leftJoin('u.medias', 'medias')->leftJoin('u.categories', 'categories')->leftJoin('categories.translations', 'categoryTranslations')->leftJoin('u.bankAccounts', 'bankAccounts')->addSelect('categoryTranslations')->addSelect('position')->addSelect('title')->addSelect('accountContacts')->addSelect('mainContact')->addSelect('account')->addSelect('urls')->addSelect('partial tags.{id,name}')->addSelect('locales')->addSelect('emails')->addSelect('emailType')->addSelect('faxes')->addSelect('faxType')->addSelect('phones')->addSelect('phoneType')->addSelect('addresses')->addSelect('contactAddresses')->addSelect('country')->addSelect('addressType')->addSelect('notes')->addSelect('urlType')->addSelect('medias')->addSelect('categories')->addSelect('bankAccounts')->where('u.id IN (:ids)')->orderBy('u.id', 'ASC');
        $query = $qb->getQuery();
        $query->setParameter('ids', $ids);
        try {
            return $query->getResult();
        } catch (NoResultException $nre) {
            return [];
        }
    }

Usage Example

Exemplo n.º 1
0
 /**
  * Returns contact entities by ids.
  *
  * @param $ids
  * @param $locale
  *
  * @return mixed
  */
 public function getByIds($ids, $locale)
 {
     if (!is_array($ids) || count($ids) === 0) {
         return [];
     }
     $contacts = $this->contactRepository->findByIds($ids);
     return array_map(function ($contact) use($locale) {
         return $this->getApiObject($contact, $locale);
     }, $contacts);
 }