Глубокая ассоциация findAll () с моделями CakePHP 2

У меня есть модели Trip, Investment и Person. Одна поездка имеет много вложений, и каждая инвестиция принадлежит одному человеку. Когда я говорю $this->Trip->find('all');, я получаю:

Array (
    [0] => Array (
            [Trip] => Array (                  
                    [id] => 1
                    [date] => 2012-10-25 13:00:00
                )
            [Investments] => Array (
                    [0] => Array (
                            [id] => 1
                            [person_id] => 1
                            [investment_type_id] => 2
                            [trip_id] => 1
                            [investment] => 55
                        )
                    [1] => Array (
                            [id] => 2
                            [person_id] => 2
                            [investment_type_id] => 1
                            [trip_id] => 1
                            [investment] => 40
                        )
                )            
        )
)

Я хотел бы, чтобы каждая инвестиция включала информацию о человеке, представленном person_id (например, их id, их name и т. Д.). Я пробовал все уровни рекурсии в поиске find('all'), но безуспешно.


person backus    schedule 28.10.2012    source источник
comment
Пожалуйста, опубликуйте код модели для Investment & Person.   -  person Costa    schedule 02.11.2012


Ответы (2)


вы определили оба способа ассоциации во всех моделях?

например. В поездке есть много инвестиций, и инвестиции принадлежат поездке

Инвестиции принадлежат человеку И человек имеет много инвестиций, также запрос должен быть

$this->Trip->find->("all", array("recursive" => 2));

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

person Drobek    schedule 05.11.2012

См. ассоциации модели cakePHP (более глубокое извлечение данных) для получения альтернативного решения: Используйте

$this->YourModelname->recursive = 3;

перед запросом.

person Martin Biermann    schedule 12.10.2015