CakePHP - Получение данных из глубоких отношений? - PullRequest
0 голосов
/ 26 февраля 2012

Мои отношения таковы:

User hasMany Item, Offer, Watcher

Item BelongsTo User
Item hasMany Offer, Watcher

Offer/Watcher BelongTo Item & User

Когда я пытаюсь получить элементы пользователей, используя это:

    $this->loadModel( 'User', $this->Auth->user( 'id' ) );
    $this->set( 'user', $this->User->read() );

Он получает записи пользователей, предметы, которые они смотрят, и предметы, которые они предлагали, и это хорошо.

Однако на предметах, которые они продают, наблюдатели / предложения не получат правильно.

если я использую: $this->User->recursive = 2; Тогда он только получает идентификатор_пользователя, но не связывает его с профилем пользователя вообще!

Пример:

http://pastebin.com/9A8k7rDs

Я могу получить эту информацию, включив модели по отдельности и получая данные таким образом, но это такой взлом.

Мне было интересно, кто-нибудь знает какие-нибудь лучшие способы ?! или даже если мои отношения правильные: z?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

Я понял!

Я использовал $this->User->Item->find( ... ) с $this->Item->recursive = 2;

Он вернул данные, которые я хотел, и немного больше, поэтому я контролировал их с помощью поведения, которое можно содержать.*

0 голосов
/ 26 февраля 2012

У вас установлены отношения во всех моделях?Это означает, что вы должны иметь отношения не только в модели User, но также в моделях Item, Watcher и Offer.

...