Doctrine Migrations s Kdyby\Doctrine – jak pristoupit EntityRepository?
- simPod
- Člen | 383
Potrebuji se v tride migrace
class VersionYYYYMMDDHHMMSS extends AbstractMigration
dostat
k EntityRepository, ale netusim jak to udelat?
V Symfony bych udelal implementoval
implements ContainerAwareInterface
a pak neco takoveho:
$em = $this->getDoctrine()->getEntityManager(); $er = $em->getRepository('SomeBundle:Entity');
Jak dostat repository v migracich v Nette? Diky
Editoval simPod (19. 9. 2015 21:38)
- Darkling
- Člen | 35
Ahoj melo by stačit si definovat závislost na entity manager v konstruktoru a pak použít metodu getRepository() jak máš popsáno. Nette se samo postará o předání závislosti.
<?php
public function __construct(Kdyby\Doctrine\EntityManager $em)
{
$this->em = $em;
$this->articles = $em->getRepository(App\Article::class);
}
?>
- simPod
- Člen | 383
On mi tam autowiring nefunguje z nějakého důvodu…
Argument 2 passed to Migrations\ VersionYYYYMMDDHHMMSS::__construct() must be an instance of Kdyby\Doctrine\EntityManager, none given,
public function __construct(Version $version, EntityManager $em)
{
parent::__construct($version);
}
- Tomáš Votruba
- Moderator | 1114
@simPod Na co to konkrétně potřebuješ? Možná to jde lépe.
Migrace by neměly být závislé na entity manageru, resp. stavu databáze.
Editoval Tomáš Votruba (21. 9. 2015 0:32)
- Tomáš Votruba
- Moderator | 1114
@simPod Toto bych řešil pomocí sql INSERT/UPDATE
.
Snáz to jde taky s použitím uuid.
- Tomáš Votruba
- Moderator | 1114
@simPod Jasně, je to vždy na zvážení a konkrétní situaci. Osobně jsem si zatím vystačil s SQL.