andWhere('.user = :user') ->setParameter('user', $user); } public function joinUser(): self { if (!$this->isJoinUser) { $this->isJoinUser = true; return $this ->leftJoin('.user', 'user'); } return $this; } public function filterByFirstname(string $firstname) { $this->joinUser(); return $this ->andWhere('user.firstname LIKE :firstname') ->setParameter('firstname', $firstname); } public function filterByLastname(string $lastname) { $this->joinUser(); return $this ->andWhere('user.lastname LIKE :lastname') ->setParameter('lastname', $lastname); } public function filterByEmail(string $email) { $this->joinUser(); return $this ->andWhere('user.email LIKE :email') ->setParameter('email', $email); } public function filterIsCreditActive() { return $this ->andWhere('.creditActive = 1'); } }