伊大师!
我们有一个博客。博客有一个包含作者列表的页面。作者存储在 AUTHOR 表中。我使用了基本的 Yii-widget CListView 来展示它:
public function actionIndex() {
$dataProvider = new CActiveDataProvider('Author');
$this->render('index', array(
'dataProvider' => $dataProvider,
));
}
比views/author/view.php:
$this->widget('zii.widgets.CListView', array(
'dataProvider' => $dataProvider,
'itemView' => '_view',
));
但除了关于作者的信息之外,这个列表还必须包含每个作者的五篇随机相关文章的 URL。文章标题存储在 ARTICLE 表中。现在我使用一个丑陋的解决方案(views/authors/_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 方式做到这一点吗?我怀疑它可以通过模型关系和范围来完成......但不幸的是我不知道如何。