renderPartial в моделе возможно?

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
andry
Сообщения: 224
Зарегистрирован: 2009.11.08, 16:52

renderPartial в моделе возможно?

Сообщение andry »

понимаю что делаю не правильно но всё же, подскажите можно ли как то в моделе подгрузить шаблон через renderPartial ?

вот к примеру в одном из моделей создаю метод

Код: Выделить всё

    public function itemLast()
    {                                              
        $model = News::model()->findAll();

        $this->renderPartial('last',array('model'=>$model));  
    }     
далее в шаблоне пытаюсь вывести но выдаёт такую ошибку
Fatal error: Using $this when not in object context in ***\Pages.php on line 102
не найден объект $this
по пытался так указать

Код: Выделить всё

CController::renderPartial('last',array('model'=>$model));  
выдало туже ошибку

Идея такая, вывести записи разных модулей ввиде блока во всём проекте в любом месте. Понятно что из модуля A вывести записи в модуле B не удаться, для этого нужно сделать подключение что то в этом роде Yii::import("application.modules.некий_модуль.models.некая_модель);
А в основном конфиге подключать модели всех модулей наверное не правильно.

В моём случаи использую шаблонотизатор Смарти и в нём хотел выводить примерно так
{component m="news:News"}
где через разделитель : первое модуль после модель, далее внутри плагина смарти подключаю Yii::import нужную модель.

сейчас буду искать другой выход.

andry
Сообщения: 224
Зарегистрирован: 2009.11.08, 16:52

Re: renderPartial в моделе возможно?

Сообщение andry »

решил сделать не через модель а через контроллер, и в том месте где нужно выбрать записи делаю импорт нужной модели, если сделать дамп записи выводятся но как только приписываю $this->renderPartial(.. вылетает та же ошибка в чём может проблема?
ведь теперь вывожу из не модель а из контролера который назначается через extends CController {

Dr0ID
Сообщения: 27
Зарегистрирован: 2010.04.04, 20:02
Откуда: Новосибирск
Контактная информация:

Re: renderPartial в моделе возможно?

Сообщение Dr0ID »

Я делаю так:

Код: Выделить всё

Yii::app()->controller->renderPartial(...);

andry
Сообщения: 224
Зарегистрирован: 2009.11.08, 16:52

Re: renderPartial в моделе возможно?

Сообщение andry »

спасибо, помогло

Аватара пользователя
sergebezborodov
Сообщения: 133
Зарегистрирован: 2010.06.10, 19:53
Откуда: Dnepropetrovsk-Sevastopol, UA
Контактная информация:

Re: renderPartial в моделе возможно?

Сообщение sergebezborodov »

в классике жанра модель вообще никаких делов с вьюхой не должна иметь, для этого есть контроллер
A passion to perform
http://sergebezborodov.com

andry
Сообщения: 224
Зарегистрирован: 2009.11.08, 16:52

Re: renderPartial в моделе возможно?

Сообщение andry »

sergebezborodov писал(а):в классике жанра модель вообще никаких делов с вьюхой не должна иметь, для этого есть контроллер
всё правильно, я уже перепланировал, сделал расширение, и через него ссылаюсь на нужную мне модель, передавая через некоторые параметры, а в сомой моделе описываю метод вызывающий параметрами, всё устраивает. Теперь

Код: Выделить всё

<ul>
{foreach from=$app->getItems->par("m:news/News/last&count:5") item=i}
   <li>
    <a href="{href url="news/news/view?alt={$i.alt}"}">{$i.title}</a><br>
    {date_format date=$i.create_date format="j rus_mon Y, H:i"} <br> 
  </li>
{/foreach}
</ul> 
где в методе par() передаются такие параметры news/News/last где m: имеет значение news/News/last (модуль/модель/метод) а count: имеет значение 5 кол-во записей.
теперь внутри любого шаблона в любом месте можно вызывать. И шаблон не нужно подгружать

Аватара пользователя
alexzv
Сообщения: 120
Зарегистрирован: 2010.04.23, 00:10
Откуда: Украина, Киев

Re: renderPartial в моделе возможно?

Сообщение alexzv »

По моему это очень похоже на виджеты, советывал бы через них и оформлять...

Ответить