Это вопрос, который у меня возник по поводу работы с платформой Kohana, хотя я думаю, что это может быть применимо к платформам MVC в целом.
Допустим, у меня есть 2 объекта / модели, объект животного и объект фермы, где животное принадлежит ферме, а на ферме много животных. У меня есть форма для создания новых животных, и я хочу иметь выпадающий список, чтобы выбрать, к какой ферме он принадлежит. Мой вопрос заключается в том, как лучше всего получать данные из таблицы фермы и отображать их в форме.
Вот несколько возможных решений, которые я придумал, но я не уверен, что какое-либо из них является лучшим подходом. Кроме того, я планировал использовать вспомогательную библиотеку форм Kohana, но, похоже, она обрабатывает HTML-визуализацию форм:
- Получить данные в AnimalModel, передать их контроллеру, который передает их в представление формы. Однако я не уверен, что это обязанность AnimalModel.
- Получить данные из FarmModel. Меня беспокоит то, что у чего-то много связей, контроллер должен начать вызывать множество разных контроллеров.
- Сохраните все данные, которые передаются различным методам формы в AnimalModel. Это также может включать в себя хранение таких вещей, как классы, что, по-видимому, не должно быть в модели.
- Напишите какой-нибудь вспомогательный объект / библиотеку для хранения всех данных формы и сохранения их в модели или, возможно, в контроллере. Опять же, я чувствую, что это приведет к смешению отображения и бизнес-логики, что мне бы очень понравилось.
Еще одна проблема, с которой я столкнулся при проектировании, - это другие вещи, которые приходят с формами, такие как проверка, а также что делать, когда я хочу, чтобы форма находилась в режиме «редактирования», и мне нужно предварительно заполнить ее данными из Модель.
Как лучше всего подходить к написанию форм, связанных с отношениями в Kohana / MVC Frameworks?