NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Přiřazení filtrů na ArrayCollection | Doctrine 2

Aktivity
Avatar
Jirka Truhlář:26.6.2017 14:55

Ahojte,
zkouším si napsat jednoduché stránky v nette frameworku za pomocí ORM. Jediné, co by tyto stránky dělali, tak upozorňovaly na něčí narozeniny. Mám 2 entity. User a Person. User má vazbu OneToMany na person, který má atribut birthday. Chci se zeptat, jak byste co nejsnadněji vybrali z $userEntity->persons všechny lidi, kteří mají narozeniny nejblíže. Mě napadlo To napsat přes poddotazy v DQL dotazu, ale příjde mi to moc složité.

 
Odpovědět
26.6.2017 14:55
Avatar
Odpovídá na Jirka Truhlář
Martin Konečný (pavelco1998):26.6.2017 15:02

Ahoj,
pravděpodobně ti pomohou tzv. Criteria:

http://docs.doctrine-project.org/…iations.html#…

Pokud bys to chtěl řešit bez DB dotazů, musel bys tu kolekci $userEntity->persons projet cyklem a z nich posupně posbírat ty lidi, kteří mají narozeniny nejblíže, a vrátit je (ve formě pole / kolekce).

Edit: Pokud tedy chápu správně, že "lidi, kteří mají narozeniny nejblíže" znamená nějaké seřazení podle data narození, přes Criteria můžeš ke kolekcím dávat podmínky, řazení atd.

Editováno 26.6.2017 15:03
Nahoru Odpovědět
26.6.2017 15:02
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
d4rkw34v3r
Tvůrce
Avatar
Odpovídá na Jirka Truhlář
d4rkw34v3r:26.6.2017 15:09

Ahoj, tu vazbu si otoč. Tzn., že nebudeš mít User oneToMany Person, ale Person manyToOne User. Prostě, aby si měl Entitu User jako field v Person. Potom ti pujdou pokládat normálně dotazy a nebudeš muset blbnout s kolekcema.

 
Nahoru Odpovědět
26.6.2017 15:09
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.