Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CakePHP]Pobieranie z dwóch tabel na raz
Forum PHP.pl > Forum > PHP > Frameworki
crackcomm
Mam problem z CakePHP, wyciągam z bazy dane:
  1. $this->News->find('all');

Mam tam pole 'user_id' co odpowiada za 'id' w tabeli users (model User), chciałbym od razu wyciągać nazwę użytkownika z tabeli users ('username', model User j.w.) da się to zrobić nie przerabiając wyniku pierwszego zapytania foreach'em i wyciągając dane z tabeli users ?

mam cos takiego
  1. var $paginate = array(
  2. 'limit' => 10,
  3. 'order' => array(
  4. 'Twitt.created' => 'desc'
  5. ),
  6. 'joins' => array(
  7. array('table' => 'users',
  8. 'alias' => 'User',
  9. 'type' => 'inner',
  10. 'conditions' => 'User.id = Twitt.user_id'
  11. )
  12. )
  13. );
  14.  
  15. function index()
  16. {
  17. $this->set('twitts', $this->paginate());
  18. }

Tylko, że zapytanie wykonuje takie:
  1. SELECT `Twitt`.`id`, `Twitt`.`tid`, `Twitt`.`text`, `Twitt`.`source`,
  2. `Twitt`.`user_id`, `Twitt`.`created` FROM `twitts` AS `Twitt` INNER
  3. JOIN users AS `User` ON (`User`.`id` = `Twitt`.`user_id`) WHERE 1 = 1
  4. ORDER BY `Twitt`.`created` DESC LIMIT 10

Więc danych z tabeli Users nie wyciąga, jak to zmienić ?
fleshgrinder
sprobuj poeksperymentowac z parametrem 'recursive' metody find

http://api.cakephp.org/class/model#method-Modelfind

Cytat
$recursive integer The number of levels deep to fetch associated records
crackcomm
Już udało mi się to zrobić, użyłem hasMany (albo hasOne nie pamiętam), dzięki.
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.