2012-02-25 2 views
0

Мои отношения заключаются в следующем:CakePHP - Получение данных из глубоких отношений?

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; Тогда он получает только user_id, но не связывает его с профилем пользователей вообще!

Пример:

http://pastebin.com/9A8k7rDs

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

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

ответ

0

Я понял!

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

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

Спасибо!

+0

Обнаружил, мне не нужен рекурсивный, как 2. Содержащееся поведение делает это для меня. – robingchan

0

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

+0

Да. В каждой модели есть hasMany и принадлежит To. – robingchan

Смежные вопросы