Doctrine Repositories¶
Standard Repositories¶
Standardmäßig kann auf die Enitäten über das Standard Doctrine-Repository Doctrine\ORM\EntityRepository zugegriffen werden:
1 2 3 4 | <?php $repo = $app['orm.em']->getRepository('Custom\\Entity\\ENTITY_NAME'); $repo->findAll(); $repo->findBy...() |
Benutzerdefinierte Repositories¶
Zu jeder Entität kann aber auch eine eigene Repository-Klasse mit eigenen Abfragen implementiert werden. Dazu muss die Repository-Klasse in der Entity-Annotation bekannt und entsprechend implementiert werden. Die eigene Repository wird dann automatisch bei obigem Aufruf im Hintergrund geladen.
custom/Entity/Test.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php namespace Custom\Entity; use Areanet\PIM\Entity\Base; use Areanet\PIM\Classes\Annotations as PIM; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity(repositoryClass="Custom\Classes\Repository\TestRepository") * @ORM\Table(name="test") * @PIM\Config(label = "Test") */ class Test extends Base { ... } |
custom/Classes/Repository/TestRepository.php
1 2 3 4 5 6 7 8 9 10 11 | <?php namespace Custom\Classes\Repository; use Doctrine\ORM\EntityRepository; class TestRepository extends EntityRepository{ public function findByTest(){ ... } } |
Aufruf
1 2 | <?php $app['orm.em']->getRepository('Custom\\Entity\\Test')->findByTest(); |