Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak w ogóle wygenerować te modele w Doctrine2?
michael1986
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.09.2005

Ostrzeżenie: (0%)
-----


Witam

Do generowanie modeli służy komenda w konsoli:

doctrine orm:generate-entities models


models to mój folder

no nie?

ale zawsze zwraca wynik mi:

No Metadata Classes to process.

ale skąd te dane gdzie mam wrzucić?


PROSTE DZIAŁANIE GENERATORA:

wrzucam w folder A, pisze komendę mam w folderze B. To powinno być opisane na głownej stronie doctrine, NIE MA TEGO NIGDZIE W INTERNECIE!!!

PYTANIE OCZYWISTE MOJE JEST GDZIE WRZUCIC TE PLIKI?

oczywiscie chodzi mi o generawanie z xml lub yaml (obojetnie niech chociaz jeden dziala).


GDZIE WRZUCIC TE PLIKI I JAK TO GENEROWAC PYTANIE JEST PROSTE?
Powód edycji: [piotrooo89]: poprwaiłem byka w temacie w ogóle a nie wogule, zapraszam do słownika.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adbacz
post
Post #2





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Z tego co zrozumiałem, to metodą getProducts() klasy User chcesz pobrać produkty? To trochę nie po kolei. Po to masz klasę Products i User (repozytoria), że każde z nich reprezentowało jedną tabelę. Możesz natomiast zrobić relację OneToMany dla klasy User pola products, i w tedy, jeśli wywołasz metodę getProducts() klasy User, to powinno Ci zwrócić rekordy, które są danego usera. Czyli produkty usera.

Mam nadzieję, że dobrze zrozumiałem twoją wypowiedź. Jak nie, to mnie popraw.

EDIT:
Cytat
Tzn. żeby jak mam np. User i Product to żeby $user->getProducts() nie ładował produktów w chwiliwi wywołania ale żeby ładowało od razu te products
Ja to zrozumiałem tak:
"Żeby $user->getProducts() nie zwracał produktów w chwili łądowania ale żeby ładował je od razu."

Ten post edytował adbacz 10.01.2012, 13:09:18
Go to the top of the page
+Quote Post
michael1986
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.09.2005

Ostrzeżenie: (0%)
-----


zrobiłem własną bazę, sensowne relacje jedną z nich jest relacja Produkt (One) -> Cena (Many). Podany kod zwraca mi fajnie ceny:

  1.  
  2. $ceny = $product->getCeny();
  3.  



w różnych grupach cenowych. Mam długi listing produktów i chce pobrać ich wszystkie ceny. Obojętnie czy wpiszę:

  1.  
  2. $dql = "SELECT p FROM Entities\Product p";
  3.  
  4. $query = $em->createQuery($dql);
  5. $query->setMaxResults(1500);
  6.  


czy zamiast powyższego zapytania inne:

  1.  
  2. $dql = "SELECT p FROM Entities\Product p LEFT JOIN p.ceny c";
  3.  


czas budowania tabeli z cenami jest w przybliżeniu taki sam. Coś mi to nie pasuje. Bo moim zdaniem w pierwszym przypadku doctrine powinien dać 1 zapytanie do bazy o produkty i 1500 małych zapytań o ceny tych produktów. A w drugim zapytać o wszystko razem jednym zapytaniem, i wszystko od razu zmapować co powinno być finalnie szybsze. Czy ja źle pojmuję mechanizm JOIN w doctrine?

źle powiedziałem: źle działa LEFT JOIN, bo działa jak JOIN = jak nie ma rekordów w prawej tabeli to nie wypisuje rekordów w lewej.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 22:14