Здравствуйте. Сейчас дописываю один небольшой проект на CakePHP и на филнальном этапе встал на одной неприятной загвоздке.
У меня есть 3 таблицы:
Код: | DTP table
--------------------
id | dtp_name | etc.
--------------------
0 | name_0 | ect0
1 | name_1 | ect1
2 | name_2 | ect2
CAR table
--------------------
id | dtp_id | etc
--------------------
0 | 1 | etc1
1 | 1 | etc2
2 | 2 | etc3
POLIS table
--------------------
id | car_id | etc
--------------------
0 | 1 | etc1
1 | 2 | etc2
2 | 3 | etc3
3 | 3 | etc4
|
Иными словами, у меня есть ДТП (DTP table), в котором есть от 1 до N участников (CAR table), и у каждого участника может быть от 0 до 2 полюсов страхования (POLIS table).
Как можно догадаться, основная таблица - DTP table, и с ней связана CAR table через $hasMany.
На сайте есть поиск. И вот задача: реализовать фильрацию по данным всех трех(!) таблиц.
Использую $this->paginate() (т.к. постраничность и сортировка - тоже нужны), и искать по первым двум таблицам (DTP table, CAR table) - получилось. А вот как добраться до POLIS table - я не представляю. Можно, конечно, все реализовать ручным запросом, но тогда придется писать обработку для $paginate, чего очень не хочется.
По сути, надо-то заставить Cake добавить в запрос одну маленькую строчку - " FROM ..., `polis` AS `"Polis`. Документацию перерыл, весь инет облазил, бьюсь уже два дня - будут ли, уважаемые, какие-нибудь советы или рекомендации? |