Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CakePHP]Pobieranie z dwóch tabel na raz
crackcomm
post 15.02.2010, 22:18:59
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 6
Dołączył: 23.02.2008
Skąd: Katowice

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


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ć ?


--------------------
Sygnaturka comes here.
Go to the top of the page
+Quote Post
fleshgrinder
post 18.02.2010, 16:08:43
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 10
Dołączył: 4.11.2007

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


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
Go to the top of the page
+Quote Post
crackcomm
post 21.02.2010, 09:33:02
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 6
Dołączył: 23.02.2008
Skąd: Katowice

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


Już udało mi się to zrobić, użyłem hasMany (albo hasOne nie pamiętam), dzięki.


--------------------
Sygnaturka comes here.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 15:18