Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [CakePHP] relacja hasMany
nospor
post
Post #1





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Hejka, mam trzy tabele:

users: id, nick, blabla
messages: id, content, blabla
message_users: message_id, user_id

Czyli do jednej wiadomosci może byc przypisanych wielu odbiorców

Na każdą tabele mam rzecz jasna model.
  1. class Message ....{
  2.  
  3.  
  4. public $hasMany = array(
  5. 'MessageUser' => array(
  6. 'className' => 'MessageUser',
  7. 'foreignKey' => 'message_id',
  8. 'dependent' => true,
  9. 'child' => true,
  10. ),
  11. );

oraz
  1. class MessageUser ... {
  2. public $belongsTo = array(
  3. 'Message' => array(
  4. 'className' => 'Message',
  5. 'foreignKey' => 'message_id',
  6. ),
  7. 'User' => array(
  8. 'className' => 'User',
  9. 'foreignKey' => 'user_id',
  10. )
  11. );
  12.  
  13.  
  14. }

No i na modelu Message robie findAll. Niesety ta metoda robi mi dwa zapytania.
Jedno na SELECT z messages, a drugie ne SELECT z message_users i potem łączy wyniki.
Czy można tu jakoś wymusić, by ona zrobiła mi jedno zapytanie:
Select ... from message left join message_users .... ?


edit: na chwilę obecną rozwiązałem to przez recznie dodanie LEFT JOIN dla findAll
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: 24.12.2025 - 14:33