С первой Yii, можно сказать, не работал. Столкнулся с такой проблемой, никак не пойму в чём дело.
Нужно в статической, целиком кешируемой, странице вывести динамический блок с новостями.
В лейауте пишу:
$this->renderDynamic('renderNews');
В контролллере:
public function renderNews() {
return $this->renderPartial('//layouts/news', array(
'news'=>$this->getPagesByParentId(185, 3)// >:(
), true);
}
Где getPagesByParentId возвращает экземпляр CActiveDataProvider:
$criteria = new CDbCriteria;
$criteria->alias = 'page';
$criteria->condition = 'parent_id = :parentId & status = 1';
$criteria->distinct = true;
$criteria->order = 'create_time DESC, alias ASC';
$criteria->params = array(':parentId'=>$parentId);
return new CActiveDataProvider($this->loadModelById($parentId), array(
'criteria' => $criteria,
'pagination' => array(
'pageSize' => $limit,
)
));
Ну и, разумеется, layouts/news:
<?php
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$news,
'itemView'=>'_new',
'ajaxUpdate'=>true,
'template'=>"{items}\n{pager}"
));
?>
В итоге получаю поломанную страницу, состоящую из куска лейаута с плейсхолдерами вида <###dynamic-1###> на местах dynamicRender'ов. Все логи включены и валятся на почту, но ничего кроме 404х от потерянной иконки в них нет. Такая вот внезапная кончина.