Introducere
Aceasta extensie Laravel Eloquent ofera relatii recursive utilizand expresii de tabel comune (CTE).
Suporta Laravel 5.5.29+.
Compatibilitate
- MySQL 8.0+
- MariaDB 10.2+
- PostgreSQL 9.4+
- SQLite 3.8.3+
- SQL Server 2008+
Instalare
Utilizare
- Notiuni de baza
- Relatii incluse
- Relatii personalizate
- Copaci
- Filtre
- Ordin
- Adancime
- cale
- Cai personalizate
Notiuni de baza
Luati in considerare urmatoarea schema de tabel pentru date ierarhice:
Utilizati caracteristica HasRecursiveRelationships din modelul dvs. pentru a lucra cu relatii recursive:
In mod implicit, caracteristica asteapta o cheie parinte numita parent_id. Il puteti personaliza suprascriind getParentKeyName ():
In mod implicit, trasatura foloseste cheia primara a modelului ca cheie locala. Il puteti personaliza suprascriind getLocalKeyName ():
Relatii incluse
Trasatura ofera diverse relatii:
- stramosi (): parintii recursivi ai modelului.
- ancestorsAndSelf (): parintii recursivi ai modelului si pe sine.
- copii (): copiii directi ai modelului.
- childrenAndSelf (): copiii directi ai modelului si in sine.
jovencitas folladoras me follo a mi vecina
pareja española follando descargar peliculas porno completas
tragando semen xxx tangas xxx
videos porno caseros españoles maduros en pajilleros
paja en publico nonude model
carne de mercado xxx españolas follando por dinero
cincuentona española follando maduras españolas amater
madura tetona viejas mexicanas follando
penes grandes porno en cine convencional
heidi porno miriam sanchez videos porno
follando con abuelas porno gay cerdo
follada a traicion revistas xxx
videos de travestis en español necrofilia xxx
porno gitanas españolas tetas saltarinas
me corro en la boca de mama feet hentai
ana marco primer anal follada en tanga
chicas masturbando a chicos porno friki
trio con mi esposa vidio xxxx
maduras corriendose paja en publico
brazzers videos completos porno violacion gay - descendents (): copiii recursivi ai modelului.
- descendentsAndSelf (): copiii recursivi ai modelului si pe sine.
- parent (): parintele direct al modelului.
- parentAndSelf (): parintele direct al modelului si el insusi.
- rootAncestor (): parintele cel mai de sus al modelului.
- frati (): Ceilalti copii ai parintelui.
- siblingsAndSelf (): Toti copiii parintelui.
Relatii personalizate
De asemenea, puteti defini relatii personalizate pentru a prelua recursiv modele conexe.
Luati in considerare o relatie HasMany intre utilizator si postare:
Definiti o relatie HasManyOfDescendants pentru a obtine toate postarile unui utilizator si ale descendentilor acestuia:
Utilizati hasManyOfDescendants () pentru a obtine numai postarile descendentilor:
Daca utilizati pachetul in afara Laravel sau ati dezactivat descoperirea pachetului pentru staudenmeir / laravel-cte, trebuie sa adaugati suport pentru expresii de tabel comune la modelul inrudit:
Copaci
Trasatura ofera arborelui () domeniului de interogare pentru a obtine toate modelele, incepand cu radacina (radacinile):
treeOf () va permite sa interogati copaci cu constrangeri personalizate pentru modelul (modelele) radacina. Luati in considerare un tabel cu mai multe liste separate:
Filtre
Trasatura ofera domenii de interogare pentru a filtra modelele dupa pozitia lor in arbore:
- hasChildren (): Modele cu copii.
- hasParent (): Modele cu un parinte.
- isLeaf (): Modele fara copii.
- isRoot (): Modele fara parinte.
Ordin
Trasatura ofera domenii de interogare pentru a comanda modele latime-intai sau adancime-intai:
- breadthFirst (): Aduceti fratii inaintea copiilor.
- depthFirst (): Aduceti copiii inainte de frati.
Adancime
Rezultatele interogarilor despre stramosi, descendenti si copaci includ o coloana de adancime suplimentara.
Contine profunzimea modelului in raport cu parintele interogarii. Adancimea este pozitiva pentru descendenti si negativa pentru stramosi:
Puteti personaliza numele coloanei suprascriind getDepthName ():
Constrangeri de adancime
Puteti utiliza domeniul de interogare whereDepth () pentru a filtra modelele dupa adancimea lor relativa:
Interogarile cu constrangeri whereDepth () care limiteaza adancimea maxima construiesc tot intregul (sub) arborescent intern. Ambele domenii de copac va permit sa oferiti o adancime maxima care imbunatateste performanta interogarii, construind doar sectiunea solicitata a arborelui:
cale
Rezultatele interogarilor despre stramosi, descendenti si copaci includ o coloana de cale suplimentara.
Acesta contine calea separata de puncte a cheilor locale de la parintele interogarii la model:
Puteti personaliza numele coloanei si separatorul prin modificarea metodelor respective:
Cai personalizate
Puteti adauga coloane de cale personalizate la rezultatele interogarii:
Contribuind
Va rugam sa consultati CONTRIBUTIA si CODUL DE CONDUITA pentru detalii.








