Вызов Функции Из Другой Модели

Есть две модели, Модель1 и Модель2.

В Модели1 объявил функцию

public function myFunc($str){

....

}

В Модели2 выполняю renderPartial вьюшки из Модели1 которая содержит вызов myFunc, не работает :unsure:

Как вызвать метод из Модели1 в Модели2 ?

Если вопрос идиотский прошу сильно не пинать.

Model1::myFunc($str)

В контроллере Модели1 в методе loadModel прописал вызов myFunc которая выполняет преобразование данных. При работе в Модели1 все отрабатывает на ура.

Когда вызываю renderPartial("Модель1/_view") в Модели2 то данные которые должны были обработаться этой функцией, по идеи, выводятся в исходном (без обработки) виде.

Делаю вывод что метод loadModel из контроллера Модели1 не обрабатывается.

Так ли это?

PolarBear может не модели а модули?!

Да нет, именно модель,

или Вы хотите сказать что

Модель + Представление + Контроллер = Модуль ?

Рендерить из модели?! Это нарушение принципа MVC. Вызывать рендер должен либо контроллер либо представление. Судя по последующим постав вы все же запускаете рендер из контроллера.

  1. откуда модель1 знает о модели2?

  2. какие параметры вы передаете при вызове renderPartial("Модель1/_view")?

TO Charger

Рендер происходит из представления.

1,откуда модель1 знает о модели2?

Не знаю. Думал просто делать вызов.

2.какие параметры вы передаете при вызове renderPartial("Модель1/_view")?




$dataExt = ConfPc::model()->findByPk($model->hard_id);


// показать дополнительную информацию, если возможно


if($dataExt !== null) $this->renderPartial('/ConfPc/_view', array('data'=>$dataExt));



я уже совсем запутался. $dataExt это модель1 или модель2?

Покажите лучше больше кода.

"Проблему" решил. Где то натупил и не работало.

Извиняюсь что отнял время форумчан и засрал форум.

Благодарю всех кто откликнулся. :D

Вопрос новичка php/yii, ответ ниже

Будет выдавать warning насколько я помню, а если внутри используется $this - то еще и ошибку.

Если вы зовете не static свойство, должен быть экземпляр класса. В yii1 можно вызвать так:




$data = Model1::model()->myFunc($str);



Если же вызывать как вы, нужно объявить функцию статической:




public static function myFunc($str)