Sulu\Bundle\ContactBundle\Entity\ContactRepository::findByCriteriaEmailAndPhone PHP Метод

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

public findByCriteriaEmailAndPhone ( $where, $email = null, $phone = null )
    public function findByCriteriaEmailAndPhone($where, $email = null, $phone = null)
    {
        // Create basic query
        $qb = $this->createQueryBuilder('contact')->leftJoin('contact.accountContacts', 'accountContacts')->leftJoin('accountContacts.account', 'account')->addSelect('accountContacts')->addSelect('account');
        if (isset($where['id'])) {
            $qb->andWhere('contact.id = :id');
            $qb->setParameter('id', $where['id']);
        }
        if (isset($where['firstName'])) {
            $qb->andWhere('contact.firstName = :firstName');
            $qb->setParameter('firstName', $where['firstName']);
        }
        if (isset($where['lastName'])) {
            $qb->andWhere('contact.lastName= :lastName');
            $qb->setParameter('lastName', $where['lastName']);
        }
        if (!is_null($email)) {
            $qb->join('contact.emails', 'emails', 'WITH', 'emails.email = :email');
            $qb->setParameter('email', $email);
        }
        if (!is_null($phone)) {
            $qb->join('contact.phones', 'phones', 'WITH', 'phones.phone = :phone');
            $qb->setParameter('phone', $phone);
        }
        try {
            $query = $qb->getQuery();
            $result = $query->getSingleResult();
        } catch (NoResultException $nre) {
            return;
        }
        return $result;
    }