Sulu\Bundle\ContactBundle\Entity\AccountRepository::findByIds PHP Метод

findByIds() публичный Метод

Get account by id.
public findByIds ( $ids ) : mixed
$ids
Результат mixed
    public function findByIds($ids)
    {
        if (count($ids) === 0) {
            return [];
        }
        $qb = $this->createQueryBuilder('account')->leftJoin('account.categories', 'categories')->leftJoin('categories.translations', 'categoryTranslations')->leftJoin('account.accountAddresses', 'accountAddresses')->leftJoin('accountAddresses.address', 'addresses')->leftJoin('addresses.country', 'country')->leftJoin('addresses.addressType', 'addressType')->leftJoin('account.parent', 'parent')->leftJoin('account.urls', 'urls')->leftJoin('urls.urlType', 'urlType')->leftJoin('account.phones', 'phones')->leftJoin('phones.phoneType', 'phoneType')->leftJoin('account.emails', 'emails')->leftJoin('emails.emailType', 'emailType')->leftJoin('account.notes', 'notes')->leftJoin('account.faxes', 'faxes')->leftJoin('faxes.faxType', 'faxType')->leftJoin('account.bankAccounts', 'bankAccounts')->leftJoin('account.tags', 'tags')->leftJoin('account.mainContact', 'mainContact')->leftJoin('account.medias', 'medias')->addSelect('mainContact')->addSelect('categories')->addSelect('categoryTranslations')->addSelect('partial tags.{id, name}')->addSelect('bankAccounts')->addSelect('accountAddresses')->addSelect('addresses')->addSelect('country')->addSelect('addressType')->addSelect('parent')->addSelect('urls')->addSelect('urlType')->addSelect('phones')->addSelect('phoneType')->addSelect('emails')->addSelect('emailType')->addSelect('faxes')->addSelect('faxType')->addSelect('notes')->addSelect('medias')->where('account.id IN (:accountIds)')->orderBy('account.id', 'ASC');
        $query = $qb->getQuery();
        $query->setParameter('accountIds', $ids);
        try {
            return $query->getResult();
        } catch (NoResultException $ex) {
            return [];
        }
    }

Usage Example

Пример #1
0
 /**
  * Returns account entities by ids.
  *
  * @param array $ids
  * @param string $locale
  *
  * @return array
  */
 public function getByIds($ids, $locale)
 {
     if (!is_array($ids) || count($ids) === 0) {
         return [];
     }
     $accounts = $this->accountRepository->findByIds($ids);
     return array_map(function ($account) use($locale) {
         return $this->getApiObject($account, $locale);
     }, $accounts);
 }