Инициализация глобальной модели в Кохане - PullRequest
0 голосов
/ 23 апреля 2011

Я новичок в Kohana и столкнулся со следующей проблемой:

У меня 3 модели, модель1, модель2, модель3.Каждый раз, когда я хочу использовать метод из одной из моделей (в другом методе / модели контроллера), я должен $model1 = New Model_Model1();

В контроллере я могу сделать public $model1 и создать модель вконструктор, это нормально.Однако в модели мне удалось получить бесконечный цикл инициализации модели.

В CodeIgniter это просто: я могу автоматически загружать модели.Как сделать мои модели глобально доступными в Кохане, чтобы я мог $this->model1->dosth(); из любого места, не беспокоясь о создании нескольких экземпляров одной и той же модели?

1 Ответ

3 голосов
/ 23 апреля 2011

Прежде всего, единственная причина, по которой вы можете сделать $this->model->method() в CodeIgniter, заключается в том, что у него есть суперобъект;

В Kohana вы можете создать экземплярный метод в вашей модели и просто вызвать Model :: instance () ..., если вам нужен глобальный экземпляр. Если вам нужен доступ к ним только в контроллерах, вы можете переопределить контроллер по умолчанию, загрузить свои модели в конструктор и использовать их в своих дочерних контроллерах.

Все зависит от вашей ситуации. Загрузка экземпляра новой модели не всегда плохая вещь.

...