|
最近在用ci和doctrine配合开发程序,和同事有了一些分歧。同事认为,controller里面
- $product = Doctrine_Core::getTable('Products')->find($id);
复制代码
就可以了,然后在view视图里取数据,比如取产品有图片,需要leftjoin图片库时,直接在view视图里面写:
- $product->Image->midthumb
复制代码
这样的好处在于工作量较小,由于doctrine的特性,view视图里用到什么,才去取什么,并不用担心系统资源的损耗。
我认为,应该在controller里面取好所有数据,例如
- $product = Doctrine_Query::create() ->from('Product p,p.Image i') ->select('p.something,i.midthumb as thumb') ->where('p.id= ?',$id);$product = $query->execute();
复制代码
然后在view视图里面取缩略图时,写:
就可以了。
这样比较符合mvc的规范,同时有两个好处:
一是可以为产品数据设置缓存(很多时候,比如需要用户登录时,页面缓存是不适用的);
二是view视图的开发人员通常是新手或比较擅长css/jquery之类的前端架构,不应该在数据库结构上给他们增加难度。
大家觉得哪种方法比较合理? |
|