ORM Doctrine je mocný nástroj, ale na některé časté úkoly si s nastavením pomocí anotací nevystačíte.
Jednodou úpravou návratových hodnot, lze podmínkovat vrácené kolekce. Doctrine v entitě dovoluje používat criteria.
Pokud chci například podmínkovat vrácení všech uživatelů spojených vazbou oneToMany, mohu použít následující rozšíření vygenerované entity.
...
use Doctrine\Common\Collections\Criteria;
...
/**
* @ORM\OneToMany(targetEntity="CestaKVašíEntitě\Users", mappedBy="records")
*/
protected $users;
...
// pokud je zadán $type, vracím pouze dle parametru...
public function getUsers($type = null) {
$criteria = Criteria::create();
if ($type != null) {
$criteria->where(Criteria::expr()->eq('type',$type));
}
return $this->users->matching($criteria);
}
říjen 2018