Ik heb 2 entiteiten, genaamd: Invoice & Payment.
Dmv foreign keys ( annotation mapping ) zijn deze aan elkaar verbonden. Vanuit de invoice, kan ik payments opvragen ( $oInvoice->getPayments() ).
<?php
$oEntityManager = $this->getServiceLocator()->get( 'Doctrine\ORM\EntityManager' );
$oInvoice = $oEntityManager->getRepository( '\Payment\Entity\Invoice' )->findOneBy( array( 'id' => $this->oSession->offsetGet( 'invoiceId' ) ) );
?>
Mijn select gaat nu niet goed, omdat deze ook velden uit de andere entiteit probeert op te halen. Foutmelding: SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.sms_sent' in 'field list'.
Is het beter om DQL te gebruiken? Of heeft iemand hier een oplossing voor?
Graag reactie waneer je ervaring hebt met doctrine 2.
Mijn collega heeft een aanpassing gedaan in de database waardoor de entiteit niet meer overeen kwam met de database :-/ Daar was ik dan de hele dag mee bezig :(
en zo ver ik weet wordt met doctrine:schema:update alleen de database geupdate en met
doctrine:generate:entities worden de entities aangemaakt die je dan desgewenst nog met de hand wijzigt
generate-entities ken ik wel inderdaad, die gebruik ik wel vaak nadat ik relaties heb gelegd. Na een db wijziging moet er dan wel wat handwerk gebeuren. Mja, zoveel werk is dat meestal niet.
Frank, zijn dat niet de commands van de doctrinebundle van symfony? Dacht dat Doctrine2 zelf schema-tool commands had.
Maar goed, doctrine:schema:update update je DB zodat het overeen komt met je entity. Het is een slimme command die zo slim mogelijk de dingen probeert te wijzigen zodat er geen problemen zijn. In de productie omgeving "moet" je dit trouwens nooit gebruiken, maar gebruik je de doctrine migrations library.
Merk overigens op dat SQLite geen schema:update command accepteert. Dan gebruik ik altijd do:schema:drop, do:schema:update en de doctrine data fixtures library.