Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF2][Symfony] - problem z pobraniem danych
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Witam.

Mam następujące pytanie.

Mam dwie tabele:

Author i Books . Author jest w relacji "jeden do wielu" z Book (Autor może mieć wiele książek)

Chciałbym uzyskać tablicę wielowymiarową gdzie indeksy to będą author_id natomiast wartością będzie tablica z book_id , danego autora.

Coś takiego:

  1. $authorsBooks = array(
  2. 2 => array(23,24,25,26),
  3. 5 => array(31,32,33,34),
  4. 10 => array(41,42,43,44),
  5. itd.
  6. );


Jak pobrać książki dla każdego autora jednym zapytaniem żeby uzyskać taką tablicę jak powyżej ? Próbowałem to zrobić za pomocą QueryBuildera ale niewychodzi ?

Ten post edytował damianooo 3.08.2013, 18:43:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
damianooo
post
Post #2





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Wielkie dzięki ... działa pięknie tak jak napisałeś ten przykład. U mnie to będzie tak:

W BookRepository:

  1. public function myTest()
  2. {
  3. $query = $this->getEntityManager()
  4. ->createQuery('
  5. SELECT u.id as uid, b.id as bid
  6. FROM My\TestBundle\Entity\Book b
  7. JOIN b.user u
  8. ');
  9. return $query->getResult();
  10. }


natomiast w kontrolerze tak:

  1. $ddd = $em->getRepository('MyTestBundle:Book)->myTest();
  2. $output = array();
  3. foreach ($ddd as $row) {
  4. $output[$row['uid']][] = $row['bid'];
  5. }



Jeśli chodzi o tą opcję HYDRATION_SCALAR to próbowałem z tym ale wywala błąd:

  1. Fatal error: Class 'My\TestBundle\Entity\Query' not found in /var/www/test/src/My/TestBundle/Entity/BookRepository.php on line 60


Pewnie trzeba dodać odpowiednią przestrzeń nazw. Jednak tak bardzo na razie tego nie potrzebuję. Dzięki jednak za podpowiedź, że jest taka opcja. (trzeba więcej dokumentacje czytać (IMG:style_emoticons/default/smile.gif) ) . Na pewno kiedyś wykorzystam tą opcję.

Dzięki, Pozdrawiam

Ten post edytował damianooo 5.08.2013, 08:48:33
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: 9.10.2025 - 07:50