Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CakePHP][2.1.3]Pobieranie danych z dwóch rekordów jednej tabeli w jednym widoku
Forum PHP.pl > Forum > PHP > Frameworki
QeX
Witam,

Potrzebuję pobrać i pokazać w jednym widoku dane jednego typu, ale o różnych id z jednej tabeli. Informacje o id danych są w innej tabeli, w polach powiedzmy"dataid_a" i "dataid_b".

Dane dla "dataid_a" pobierane są w widoku i to działa, ale potrzebuję dorzucić dane z "dataid_b". Nie można, niestety po prostu dopisać 'echo "dataid_b"...' wink.gif - skrypt bierze pod uwagę tylko id pierwszej danej.

Próbuję stworzyć helper pobierający dane, ale nie wiem czy to słuszna droga? Proszę o jakieś wskazówki.
kleus
Nie do końca rozumie o co tak naprawde chodzi wiec nie jestem w stanie Ci pomoc.
Najpierw piszesz o jednej tabeli pozniej o dwoch...

Jezeli chcesz pobierac dane z dwoch tabel to zamiast helpera radze wykorzystac callback afterFind
QeX
Chcę pobrać dane z dwóch rekordów jednej tabeli na podstawie informacji o id tych danych, które są w innej tabeli.


Tworząc dokument zapisuję dane w tabeli1 i id tych danych w tabeli2:

-------------------
tabela1
-------------------
id | dana |
-------------------
1 | coś |
2 | icoś |


---------------------
tabela2
---------------------
id | id_danych |
---------------------
1 | 1 |
2 | 2 |


Mechanizm zapisu działa bez problemu.

Następnie chcę pokazać dokument z danymi z pierwszej tabeli na podstawie id zapisanych w drugiej. Dokument ma zawierać dane o różnych id (np. 1 i 2) jednocześnie i na tym polega problem. Nie wiem jak wywołać dwie dane o różnych id z pierwszej tabeli za pomocą jednego modelu.
kleus
Jeżeli twoja tabela2 nie jest powiązana jeszcze z inna tabelą to nie wiem po co ci ona.

Jak chcesz wyłuskać z tabeli rekordy o id np. 1, 2 to robisz tak
  1. $tabela1 = $this->Tabela1->find('all', array(
  2. 'conditions' => array(
  3. 'Tabela1.id' => array('1', '2')
  4. ),
  5. 'order' => array(
  6. 'Tabela1.created' => 'DESC'
  7. )
  8. ));

Jak już tak bardzo się upierasz zeby za pomca tabeli 2 wyciagac dane z tabeli1 to robisz
  1. $dane = $this->Tabela2->Tabela1->find('all', array(
  2. 'conditions' => array(
  3. 'Tabela1.id' => array('0', '3')
  4. ),
  5. 'order' => array(
  6.  
  7. )
  8. ));


Tylo przypadek hasMany belongsTo inaczej nie bedzie działac
QeX
Dzięki smile.gif

Zrobiłem to tak:

Ponieważ muszę pobierać dane z jednej (tej drugiej) tabeli więc dane już na etapie zapisu są przekazywane z tabeli1 jako tekst (nazwa) do dwóch dodatkowych pól w tabela2 i stamtąd pobierane w dwa miejsca dokumentu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.