0
Yii高手!Yii CListView與MVC原理衝突
我們有一個博客。博客有一個包含作者列表的頁面。作者存儲在AUTHOR表中。我使用基本的Yii的小部件CListView中表現出來:
public function actionIndex() {
$dataProvider = new CActiveDataProvider('Author');
$this->render('index', array(
'dataProvider' => $dataProvider,
));
}
而不是意見/作者/ view.php:
$this->widget('zii.widgets.CListView', array(
'dataProvider' => $dataProvider,
'itemView' => '_view',
));
但除了關於作者的信息,這個名單必須包含的網址爲每位作者提供五篇隨機相關文章。文章標題存儲在ARTICLE表中。現在我用一個醜陋的解決方案(意見/作家/ _view.php):
<ul class="experts-node-articles-list">
<?php $authorArticles = Article::model()->findAllByAttributes(
array('author_id' => $data->id),
array('limit' => '5'
)); ?>
<?php foreach ($authorArticles as $item) : ?>
<li><a href="#"><?php echo CHtml::encode($item->title); ?></a></li>
<?php endforeach; ?>
</ul>
這是醜陋的,因爲在一個視圖中調用模型。這是與MVC原則恕我直言的衝突。我能以真正的MVC方式做到這一點嗎?我懷疑它可以通過模型關係和範圍來完成......但不幸的是,我不知道如何。