设置数据库
首先创建一个表来保存等级。使用同一条 SQL 分别在三个数据库中创建这个表。
清单 1. 创建一个表来保存等级
CREATE TABLE ' r anks ' (
' i d ' INT ( 10 ) NOT NULL AUTO_ INCREMENT PR IMARY KEY ,
' pos t _ id ' INT ( 10 ) NOT NULL ,
' r ank ' INT ( 10 ) NOT NULL
) ENGINE = MYISAM ;
注:
只保存 post 的等级不需要使用完整的表。如果更改更新已修改列的方式,可以
在 post
表的另一列中处理等级。我们不希望每次有人对 post
评级时就修改 post 数据,
并且在设计 Blahg 时,MySQL 或框架都将这样做。此外,如果需要对等级进行更多操作,
如记录提交的 post
的数量或最后一次对 post 评级的时间,那么把这些信息放到单独的
表中才有意义。
在 Zend
中把 post
等级添加到 Blahg 中
需要决定处理 Ajax 请求的组件。虽然给出我们自己的解决方案一点都不困难,但是
考虑到本文的目的,每个框架都将使用 Prototype
——
库。需要创建一个保存库的目录
该目录可以通过浏览器访问,例如 /column/htdocs/zend/scripts/(这是
使用的目录)。
需要创建一个名为 Ranks.php
的基本 ranks
模型。它应当只是一个模型 shell,就
像我们为 posts
和 comments
所做的。当然,需要创建 ranks 控制器。我们将不为此模
——
型创建任何视图
该控制器将只回传(echo out)所有等级请求的结果。需要两个操
作:readAction
将查找 post 的等级,而 writeAction 将接受提交的等级并查看表
中是否有针对该 post 的行。如果有,则用新值更新该等级;否则,将插入一个新的等级
行。无论怎样都将输出新等级,因此可以更新视图中的等级。这些内容非常简单并且可以
中找到。现在需要把一些 Ajax 添加到视图中。
记住,在这里不添加任何特定于等级的视图。但是需要修改 posts read 视图来包括