Doctrine2 a Closure Table

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
libik
Člen | 100
+
0
-

Ahoj,

v projektu budu mit jedinou stromovou strukturu kategorii a chci ji resit pres Closure Table – vim jak funguje, jake dotazy jsou potreba pro ukladani/mazani/presouvani uzlu. Tak si rikam, nez pouzit nejakou extension jako Gedmo, tak by to mohlo jit jednoduse i bez toho. Navic jsem cetl, ze Gedmo pouziva bad-practice (vazani repository na entitu primo v jeji definici).
Bohuzel ale hned na zacatku :) jsem narazil na problem, ktery se tyka spis toho, ze jsem s Doctrine2 teprve v zacatcich.
Je mi teda jasna entita Category (id,name,ordernum…), ale neni mi jasne, co s closure tabulkou (ancestor,descendant,depth…). Tim, ze closure neobsahuje jen reference, ale i dalsi informace jako depth, uz bych to mel z hlediska ORM vnimat take jako entitu a nezavadet vztahy ManyToMany, je to tak?

Diky.

Jan Endel
Člen | 1016
+
0
-

Ano, máš pravdu, Closure tabulka by měla potom být samostatná entita.

libik
Člen | 100
+
0
-

A bude mi ta entita k necemu, kdyz budu pouzivat DQL v entite category ? Resp. moc nevim, jak v pripade entit (tedy bez DQL) to cele resit v nejake category fasade, kdyz se tam ma zmenit hodnota atributu nekolika closure entitam najednou (treba s descendant = 11), mel bych je vsechny nacitat, zmenit jim hodnotu a pak to cele flushnout? Nebo jit cestou DQL, pak ale entitu closure tabulky nepotrebuju?

Editoval libik (2. 1. 2016 19:06)

mrtnzlml
Člen | 140
+
0
-

Nějaký čas zpět jsem to řešil takto (NavigationTreePath) resp. viz celý Navigation bundle. V NavigationFacade je pak vidět, jak jsem s tím pracoval. Je to hodně quick'n'dirty, ale zrovna v tomto případě mi to moc nevadilo… :)

libik
Člen | 100
+
0
-

Diky moc, podivam se na to!