Два просмотра / контроллеров на одной странице?

0

Я новичок в CakePHP. До сих пор мне удалось создать несколько видов, контроллеров и моделей. Вот моя проблема:

У меня две таблицы:

  • tea_types (Список Teatypes с их крутым временем)
  • steep_logs (История чаев, которые были погружены)

Для каждой таблицы у меня есть модель, представление и контроллер, который работает нормально. Теперь я хочу создать index.php, где я хочу объединить три элемента:

  • TeaTypes (Действия: Редактировать, Удалить, Добавить, Нажмите, чтобы начать teatimer)
  • TeaTimer (При передаче титапика должен начинаться обратный отсчет - я хочу сделать это с помощью JavaScript)
  • SteepLog (каждый чай, который был выбран, должен быть добавлен в таблицу, и должны быть показаны последние 20 записей)

Каждый из этих элементов готов, но не их комбинация в одном представлении. Должен ли я сделать дополнительный контроллер, который объединяет эти 3 элемента? Является ли контроллер без модели возможной или разумной?

Два контроллера также связаны друг с другом:

  • TeaType hasMany SteepLog
  • SteepLog принадлежит TeaType

Я думаю, что решение не так сложно, но я бы знал, что такое лучшая практика.

  • 1
    Вы не создаете «комбинированную» модель / контроллер для этого, но вы должны связать модели . Затем, используя поведение Containable , вы можете извлечь все данные в одной находке.
  • 0
    Это звучит неплохо. Я посмотрю на эти темы. Можете ли вы опубликовать это как ответ, тогда я поставлю оценку, если он сработает.
Показать ещё 3 комментария
Теги:
model-view-controller
cakephp

1 ответ

1
Лучший ответ

Чтобы следовать соглашениям, ваши имена таблиц должны быть tea_types и steep_logs, для них для моделей должны быть TeaType и SteepLog, а контроллерами должны быть TeaTypesController и SteepLogsController.

Без вашей схемы я не могу точно сказать, как ваши ассоциации моделей должны быть установлены по соглашению, но логически я бы подумал, что TeaType hasMany SteepLog и SteepLog belongsTo TeaType. Вы можете узнать, как определить вашу схему, чтобы она соответствовала соглашениям об ассоциации моделей из учебника блога или книги Cake, эта тема слишком длинна, чтобы обобщить здесь.

Как только ваши ассоциации моделей будут определены, вы сможете найти и обработать обе модели с обоих контроллеров по мере необходимости.

  • 0
    Хорошо, я переименовал мои контроллеры, модели, представления и таблицы. Я уже сделал ассоциации между TeaType и SteepLog. Это хорошо работает с потасовкой. Следующая часть будет отображать два представления на одной странице.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню