请教,如何实现这样的view [ 新手入门 ]
刚学php, yii 应该怎么实现这样的view. ClistView ? CGridView ? 给个思路,或者例子吧。
谢谢。
[attach]669[/attach]
共 9 条回复
-
能不能在具体点,
假设有3表,channel, program, schedule.Select all from channel
,把频道的数据,做data,传给CList.自己写个itemview,付给CList.
问题来了,对每个itemview,需要
select all from schedule join program on programid where channelid.
就是需要根据当前频道,从数据库里找到program info 和时间的信息,传给itemview.
这一部分,应该在那里做?itemview没有controller.谢谢,
越具体越好,有例子更好。
-
Select all from channel,把频道的数据,做data,传给CList.
这个思路会造成后面困扰你的问题,应该在model内把要显示的数据准备好,再传给CListView,
如果用AR方式实现,要在三个model里把关系设置好,如果DAO方式就把你的sql写完整,读取出所有需要的数据。关于AR方式中表关系的实现,可以参考:
http://www.yiichina.com/doc/guide/1.1/database.arr另:如果按照你本来的思路,也是可以的,但仍然需要把model的关系配置好,希望你能学习一下上面的参考
-
非常感谢你的回复。
我不会写那么复杂的query, 好像需要左join和右join.
我只会写下面的。帮我看看这个query应该怎么写。十分感谢。
那么在我的
actionIndex() { $criteria = new CDbCriteria(); $criteria->join = " JOIN ( schedule JOIN (program ON schedule.program_id.=program.id ) ON channel.id=schedule.channel_id; $dataProvider=new CActiveDataProvider('Channel', array( 'criteria' => $criteria, )); $this->render ('index',array( 'dataProvider'=>$dataProvider, )); }
[attach]670[/attach]
功夫熊猫
注册时间:2012-03-14
最后登录:1970-01-01
在线时长:0小时0分
最后登录:1970-01-01
在线时长:0小时0分
- 粉丝0
- 金钱110
- 威望0
- 积分110