Hice un avance. Para que los JOINS funcionen, hay que setear la recursividad a -1:
$this->User->recursive = -1;
Sin embargo, aun no puedo obtener un buen resultado. Estoy confundido. Mi consulta es esta:
Código PHP:
Ver original$this->User->recursive = -1;
$options['conditions'] = array( 'User.id' => $id
);
$options['joins'] = array(
'table' => 'users_words',
'alias' => 'UsersWord',
'type' => 'INNER',
'User.id = UsersWord.user_id'
)
),
'table' => 'words',
'alias' => 'Word',
'type' => 'INNER',
'UsersWord.word_id = Word.id'
),
)
);
$user_relations = $this->User->find('all', $options);
Y el resultado es cualquier cosa:
Código PHP:
Ver original(
(
(
[id] => 1
[username] => admin
[password] => e714044c058d932bac9a63f7f00273dbce722794
[email] => gperez@agendajoven.org.ar
[photo] => anonimo.gif
)
)
(
(
[id] => 1
[username] => admin
[password] => e714044c058d932bac9a63f7f00273dbce722794
[email] => gperez@agendajoven.org.ar
[photo] => anonimo.gif
)
)
(
(
[id] => 1
[username] => admin
[password] => e714044c058d932bac9a63f7f00273dbce722794
[email] => gperez@agendajoven.org.ar
[photo] => anonimo.gif
)
)
)
Claramente estoy pidiendo un solo usuario. La consulta mysql que se imprime es esta:
Código PHP:
Ver originalSELECT `User`
.`id`
, `User`
.`username`
, `User`
.`password`
, `User`
.`email`
, `User`
.`photo` FROM `users`
AS `User` INNER
JOIN users_words
AS `UsersWord` ON
(`User`
.`id`
= `UsersWord`
.`user_id`
) INNER
JOIN words
AS `Word` ON
(`UsersWord`
.`word_id`
= `Word`
.`id`
) WHERE `User`
.`id`
= 1