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();
Mätie ma to $em->persist($article) a následné volanie $product->setTitle('Foo bar'), alebo $em->remove($category)
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
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
No ale kde sa presistuje entita $product a $category? Veď sa tam presistuje iba $article.
tiso
Profil
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
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.
kzkcz
Profil
Omylem... posláno. Jen jsem se chtěl přihlásit. :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: