Как я могу найти рекурсивно с помощью cakePHP? - PullRequest
2 голосов
/ 23 августа 2011

У меня есть отношение, настроенное так:

class Geocache extends AppModel {
    var $belongsTo = 'User';
    var $hasMany = 'Log';
}
class Log extends AppModel {
    var $belongsTo = array('User','Geocache');
}
class User extends AppModel {
    var $hasMany = array('Geocache','Log');
}

и $this->Geocache->find('first'); возвращает:

Array
(
    [Geocache] => Array
        (
            [id] => 86
            [user_id] => 3
            [name] => Hejssa
            //...
        )

    [User] => Array
        (
            [id] => 3
            [username] => Ahtenus
            //...
        )

    [Log] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [user_id] => 12
                    // How do i retrive the username and such from the User table together with this?
                    [geocache_id] => 86
                    //...
                )
            //...
        )
)

Как я также могу получить данные пользователя для каждого журнала?

1 Ответ

2 голосов
/ 23 августа 2011

Установите рекурсивное свойство на 2.

$this->Geocache->find(
    'first',
    array(
        'recursive' => 2
    )
);

Слово предупреждения: установка рекурсивного значения на значение, превышающее 1, легко раздувает результаты даже в небольшой базе данных. В этом случае он будет извлекать данные Geocache снова для каждой записи журнала. Вы должны использовать ableable , чтобы ограничить результаты только теми таблицами и полями, которые вам нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...