Вам нужна поддержка рекурсивных ассоциаций, что в настоящее время невозможно с запасом CakePHP. Хотя это может быть достигнуто с помощью некоторого трюка bindModel или экспериментального RecursiveAssociationBehavior .
Оба этих решения потребуют от вас использования дополнительного кода или полагаться на поведение в вашем приложении, но если вы сопротивляетесь соблазну писать чистый код SQL, вы будете вознаграждены тем, что сможете использовать разбиение на страницы Cake, автоматические условия, манекены модели и т. д.