2015-07-01 2 views

ответ

8

Наконец-то я решил свою проблему, это простой способ, передав массив ModelNames в $this->loadModel(); Функция.

$ this-> loadModel ('model1', 'model2', 'model3', ...);

И вы хотите загрузить несколько моделей для всего контроллера, то вы можете:

публика $ использует = массив ('model1', 'model2', 'model3', ... .);

+0

для меня Я использовал «$ this-> loadModel» в двух местах для нескольких моделей, но базовый класс работает, но для дочернего класса он загружает только первую модель. Может ли кто-нибудь помочь? –

3

Если у вас есть только одна или две модели, самый простой способ - позвонить loadModel один или два раза. Вот одна строка кода, который должен работать (не проверено) для вас, если у вас есть несколько моделей:

array_map ([$this, 'loadModel'], ['Model1', 'Model2', 'Model3']) ; 

Во всяком случае, если у вас действительно есть много моделей для загрузки вручную, может рассмотреть вопрос реорганизации проекта ...

1

Да ваш метод является правильным

$this->loadModel('model1', 'model2', 'model3', ...); 

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

public $uses = array('model1','model2','model3', ....); 
2

сделать это

public function initialize(){ 
    $this->Model = $this->loadModel('modelClass') 
} 

Вы можете заменить Model и modelClass на ваш случай

Смежные вопросы