情况:
简化的情况是:考虑一个构建为MVC项目的博客。 YII博客的例子对此很好,但问题不是框架特定的:它没什么特别的;你有一个包含帖子和页面构建的表:
现在我有一个工作博客,但我也有一个外部信息来源,我想介绍到同一页面:例如RSS提要。
如何添加此新数据源?
可能的解决方案
为了澄清我正在努力解决的问题,这里有一些我正在考虑的事情
框架说明:
我正在使用YII,但它并不是关于YII的。当然,如果要做一些复杂的事情,我将不得不在YII中实现它,但它是关于设计和MVC模式,而不是放在;
的位置; D
答案 0 :(得分:0)
如果我必须这样做,我会为视图制作一个新的控制器,并使用两个模型。
我对mvc模式非常陌生,但是从我收集的内容到现在,感觉任何模型都应该只限于一个数据源。除了CRUD操作之外,“业务逻辑”(如果有的话)应该包含在该模型中。这里的业务逻辑意味着适用于与Web应用程序相关的数据源的逻辑,即您提到的内容,例如按日期排序RSS。
创建一个访问这两个模型的控制器,以填充您的视图。
最后,关于Yii,组织mvc的这些组件/模块/部件的最佳方式取决于您的应用程序要求,以及ux。
现在,我认为你也应该把这个问题放在programmers网站上
希望这有帮助!
编辑:不太确定在哪里放置排序,控制器或视图。
答案 1 :(得分:0)
class XyzController extends CController
{
.
.
.
public function actionAbc()
{
.
.
.
$this->render('viewname',array(
'model1'=>$model1,//for posts frm table
'model2'=>$model2 //for rss feed
));
}
}
为了更好地理解,尝试为父视图“viewname”
中的每种类型的帖子呈现两个单独的视图