您的位置:首页 > 移动开发

Agile Web Application Development with Yii 1.1 and PHP5 读后总结(5)Task的所有...

2012-10-15 22:33 656 查看
1、明确数据表间的关系,如图



project和user是多对多关系,也可以没有关系

project和issue是一对多关系

user和issue是一对多的关系

2、数据库中建立关系的语句

ALTER TABLE `tbl_issue` ADD CONSTRAINT `FK_issue_project`
FOREIGN KEY (`project_id`) REFERENCES `tbl_project` (`id`)
ON DELETE CASCADE ON UPDATE RESTRICT;


也就是为数据表添加外键的语句...

3、下拉菜单的问题,有时候我们不需要用户填写不规范的东西,那就用下拉菜单好了,配置如下:

定义常量和与之对应的数字编号(这个编号)
在 models下issue.php中添加函数getTypeOptions() 用来返回不同类型的issue的名称
在views下issue/_form.php中找到type_id所在的区域,修改textField为drowDownList,这样它就显示为下拉列表了

4、过滤器,即实现一些操作的前提条件,还是在issueControl下定义的。主要有两步:

在public function filters中定义规则,这个规则也是yii有的(如accessControl),只要返回相应的数组就好,我们也可以自定义规则,在规则后面的+ -号的使用上也是很有意思很方便的。
自定义过滤只需在下面添加相应的函数就好了函数结构大概:
public function filterProjectContext($filterChain)
{
$filterChain->run();
}
逻辑还是要自己写的,恩那,我想关键就是逻辑了,实现不了逻辑,yii再强大也没有用

5、



如果做到这一步,并且理解无压力的话,那您是很棒的。这些涉及到了视图表现,数据调用的知识。说实在的,再结合着逻辑来做,真的要水准。(俺这是对向俺这样菜鸟缩的...)

6、关于修改view文件,这个都在view文件夹下,我们可以仔细研究下,这些view文件时怎么样组成最终我们所看到的视图,这个是很有用的,另外,yii有自己的分页显示的挂件,我们只需要设定挂件每页显示的条目就可以了。

7、CListView挂件,CDeatilView挂件,两者都是用来分页显示数据表内容的,不同的是clist显示数据表中的条目,而cdetail则显示每各条目的详细内容zzz
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: