Объединение нескольких контроллеров на одной странице без загрузки контроллеров с контроллера - PullRequest
3 голосов
/ 27 июля 2011

Я пытаюсь создать страницу, которая отображает определенные виджеты / включения в зависимости от разрешений пользователей. Я совершенно новичок в CodeIgniter и MVC.

Пример. У меня есть календарь. У этого есть контроллер, модель и представление, и это должно быть включено в другие страницы. Я хочу, чтобы этот календарь и ряд других подобных «виджетов» отображались на одной странице. Эта страница в настоящее время имеет контроллер и просмотр.

Я знаю, что не должен загружать контроллер с другого контроллера, но не могу обойти его. Можете ли вы загрузить несколько контроллеров из помощника, или мне нужна какая-то форма шаблона?

Спасибо,

Жаки

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

Мне кажется, что вы ищете Модульные расширения для CodeIgniter .Это позволяет разбить приложение на модули, которые можно вызывать друг от друга.В вашем случае у вас будет модуль календаря, который вы можете вызывать из других модулей.

1 голос
/ 27 июля 2011

То, что вы можете искать, называется Layouts . Codeigniter не имеет такой функции из коробки, но макеты в основном делегируют (фронт-контроллер) запрос для нескольких действий. Каждое действие работает само по себе и имеет свой собственный вид.

Макет позаботится о том, чтобы собрать все это в один выход.

Эта методология также учитывает, что вы не вызываете один контроллер с другого контроллера, поэтому вы держите код отдельно, который не принадлежит друг другу или может испортиться, потому что он слишком много делает сразу.

Это обсуждение может быть интересным для вас: Макеты Codeigniter? , в FAQ по Codeigniter также есть об этом больше, а более конкретно Верхний и нижний колонтитулы и меню на каждой странице в вики.

...