Autor | Zpráva | ||
---|---|---|---|
Camo Profil |
Dobrý večer všetkým,
snažím sa pochopiť fungovanie Doctrin 2 a začal som týmto seriálom www.zdrojak.cz/clanky/doctrine-2-nacitani-ukladani-a-mazani Opakuje sa tam kód ktorému nerozumiem: // Vytvoříme a persistujeme nový článek $article = new Article; $em->persist($article); // Změníme titulek produktu s ID 123 $product = $em->find('Product', 123); $product->setTitle('Foo bar'); // Odstraníme kategorii s ID 123 $category = $em->find('Category', 123); $em->remove($category); // Všechny změny výše potvrdíme a pošleme do databáze $em->flush(); Ako entita $product a $category súvisí s entitou $article? Resp. persituje sa entita $article a ukladá sa entita $category? To je ako možné resp. načo sa do persist vkladá parameter $article, keď sa potom pracuje s $category? Ak mi to niekto dokáže vysvetliť, tak mu budem vďačný. |
||
yFang Profil |
#2 · Zasláno: 6. 10. 2015, 22:11:54
Camo:
„Ako entita $product a $category súvisí s entitou $article?“ Nijak, je to příklad, který ukazuje vytvoření nové entity, editaci a smazání. Jsou to v podstatě tři nezávislé příklady. |
||
Camo Profil |
#3 · Zasláno: 6. 10. 2015, 22:31:30
No ale kde sa presistuje entita $product a $category? Veď sa tam presistuje iba $article.
|
||
tiso Profil |
#4 · Zasláno: 6. 10. 2015, 23:04:03
Camo: Nikde, tie už existujú a ťahajú sa z databázy. Tiež keď si vytiahneš niečo z databázy, tak to znovu neukladáš cez insert. Ale nové entity musíš najprv persistovať.
Ak to prirovnám s SQL, tak: find je ako SELECT ... persist je ako INSERT ... remove je ako DELETE ... flush reálne vykoná všetky pripravené zmeny v databáze Persisting entities |
||
Camo Profil |
#5 · Zasláno: 6. 10. 2015, 23:30:22
tiso:
Aha takže persist() sa volá iba na entity vytvorené cez new. Tuším sa tam aj niečo podobné niekde písalo. Ďakujem. |
||
Časová prodleva: 7 dní
|
|||
kzkcz Profil |
Omylem... posláno. Jen jsem se chtěl přihlásit. :)
|
||
Časová prodleva: 9 let
|
0