| 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: 11 let
|
|||
0