В настоящее время я слоняюсь с CakePHP, решая, буду ли я использовать его в следующем веб-приложении.
Проблема в том, что у меня есть несколько таблиц, которые в какой-то момент обмениваются соответствующими данными друг с другом. Если бы я сам написал весь код, я бы использовал SQL-запрос, используя довольно много разных объединений и подзапросов. Но насколько я понимаю, CakePHP поддерживает только соединения между двумя таблицами.
Так, например, у меня есть таблицы «Пользователи», «Профиль», «Ранг», «Рейтинги», и я хочу получить профиль, рейтинг и рейтинги одного конкретного пользователя. CakePHP добьется цели, используя несколько отдельных операторов SELECT. Но это было бы возможно, используя один запрос с несколькими объединениями. Ожидается, что производительность будет очень важной, поэтому не слишком расточительно относиться к запросам SQL - главное преимущество.
Я нашел два хака ( одно поведение и один с использованием bindModel ) и аналогичный поток StackOverflow .
Я не знаю, использовать ли поведение или взломать bindModel. Кто-нибудь может пролить свет на то, что лучший подход - а именно. что лучше всего интегрируется в общую структуру CakePHP (доступны ли такие функции, как нумерация страниц)? Или есть другой подход, который в конечном итоге лучше. В потоке SO упоминается метод с использованиемableables.
Надеюсь, я не ошибаюсь, когда открываю для этого отдельный вопрос, но в старом потоке перечислены некоторые решения, но ответ мне не так понятен по вышеупомянутым причинам.