Страница 1 из 1

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

Добавлено: 2010.10.28, 04:18
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 нужную модель.

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

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

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

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

Добавлено: 2010.10.28, 07:27
Dr0ID
Я делаю так:

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

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

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

Добавлено: 2010.10.28, 10:56
andry
спасибо, помогло

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

Добавлено: 2010.10.28, 17:50
sergebezborodov
в классике жанра модель вообще никаких делов с вьюхой не должна иметь, для этого есть контроллер

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

Добавлено: 2010.10.29, 05:19
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 кол-во записей.
теперь внутри любого шаблона в любом месте можно вызывать. И шаблон не нужно подгружать

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

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