QeePHP基础教学-建置留言簿
时间:2008-04-12 来源:qeeify
大家好,认识一下大家吧!其实我是新来的作者^_^
首先要说的是,因为我是台湾人,所以如果用词无法理解请一定要跟我说,我会改进。当然现在直接进入正题──建置留言簿。这个例子采用《
[转]使用FleaPHP框架构建简单留言本应用
》做为基础,然后改由QeePHP完成任务。
2008-03-23: 修改Controller以及Model部分。
先看看结果吧:
1.建立应用程序
请参考《
《开始创建 QeePHP 应用程序》系列文章
》建立一个新的应用程序。
其中命令行执行的内容如下:
\qeephp\scripts\chili.bat 应用程序名称
2.建立数据表
执行SQL语法:
CREATE TABLE IF NOT EXISTS `guestbooks` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`nickname` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`website` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`content` text COLLATE utf8_unicode_ci NOT NULL,
`created` int(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16;
3.建立配置文件
我们修改\config\environments\database.yaml.php里面的「devel模式」数据库连接信息。
如果之后无法加载QeePHP的话,请修改\config\environments\database.yaml.php里面的QeePHP位置。
4.建立控制器(controller)
控制器我们无须建立,使用默认即可。
我们在\app\controller\default_controller.php输入以下代码:
?php
class Controller_Default extends QController_Abstract {
/**
* Constructor
*/
function __construct() {
parent::__construct(MyApp::instanc());// 这里我不知道有没有更好的写法。
}
/**
* Index
*/
protected function actionIndex() {
$this->view = array(
'guestbook' => Guestbook::find()->all()->order("id DESC")->asArray()->query()
// 此为QeePHP的贯串接口,開啟尋找->全部->排序->陣列處理->查询输出。
);
}
/**
* Create
*/
protected function actionCreate() {
$create = new Guestbook();
$create->nickname = htmlspecialchars($this->request->nickname);
$create->email = htmlspecialchars($this->request->email);
$create->website = htmlspecialchars($this->request->website);
$create->content = htmlspecialchars($this->request->content);
$create->save();
return new QResponse_Redirect($this->url->make());// 立刻返回本页的留言列表。
}
?>
5.建立模型(model)
建立一个档案:\app\model\guestbook.php。
内容如下:
class Guestbook extends QDB_ActiveRecord_Abstract {
/**
* 返回对象的定义
*
* @static
*
* @return array
*/
static function __define() {
return array(
// 指定该 ActiveRecord 要使用的行为插件
'behaviors' => '',
// 用什么数据表保存对象
'table_name' => 'guestbook',
// 指定数据表记录字段与对象属性之间的映射关系
// 没有在此处指定的字段,QeePHP 会自动设置将字段映射为对象的可读写属性
'fields' => array(
// 主键应该是只读,确保领域对象的“不变量”
'id' => array('readonly' => true),
// 对象创建时间应该是只读
'created' => array('readonly' => true),
),
);
}
/**
* 开启一个查询,查找符合条件的对象或对象集合
*
* @static
*
* @return QDB_ActiveRecord_Select
*/
static function find() {
$args = func_get_args();
return parent::__find(__CLASS__, $args);
}
/**
* 实例化所有符合条件的对象,并调用这些对象的 destroy() 方法,返回成功删除的对象的数量
*
* @static
*
* @param mixed $where
*
* @return int
*/
static function destroyWhere() {
$args = func_get_args();
return parent::__destroyWhere(__CLASS__, $args);
}
/**
* 对数据进行验证,返回所有未通过验证数据的名称错误信息
*
* @param array $data
* @param array|string $fields
*
* @return array
*/
static function validate(array $data, $props = null) {
return parent::__validate(__CLASS__, $data, $props);
}
}
这么Easy?没错,QeePHP帮我们把大量繁琐的事物处理好了。
6.建立视图(view)
视图放在\app\view\default\index.php,其中default为控制器名称,index为动作名称。
h1>::Guestbook::/h1>
div id="messageList">
h2>Message List/h2>
?php foreach($guestbook as $data) {?>
div class="content">
div>
span class="nickname">Nickname:
?php echo $data['nickname']; ?>/span>
[ ?php echo date("Y-m-d", $data['created']); ?> ] |
a href="">E-mail/a> |
a href="">Website/a>
/div>
div>?php echo $data['content']; ?>/div>
/div>
?php } ?>
/div>
div id="postForm">
h2>Leave a message/h2>
form id="guestbook" action="url->make(null, 'Create'); ?>" method="post" onsubmit="return checkForm()">
p>label for="nickname">Nickname/label>input id="nickname" name="nickname" type="text" size="20" />/p>
p>label for="email">E-mail/label>input id="email" name="email" type="text" size="20" />/p>
p>label for="website">Website/label>input id="website" name="website" type="text" size="20" />/p>
p>textarea id="content" name="content" rows="10" cols="65">/textarea>/p>
p>input type="submit" value="Submit" />/p>
/form>
/div>
7.建立模板(layout)
再来建立模板:\app\view\_layouts\default_layout.php,将下面的样式写在default_layout.php。
CSS:
7.建立模板(layout)
再来建立模板:\app\view\_layouts\default_layout.php,将下面的样式写在default_layout.php。
CSS:
如果使用IE7以下(不含IE7),请引入下面这个JavaScript:
http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js
这么一来我们简单的留言簿就完成了,QeePHP帮我们省下许多的时间,让我们更加的注意应用程序的功能。
注意:其中IE会引入IE8.js来修正排版错误。
原文地址:
http://qeeify.com/index.php/2008/03/22/qeephp-tutoeais-guestbook.html
更多信息,请访问 FleaPHP/QeePHP 开源开发框架官方网站:
http://www.fleaphp.org/
。
相关阅读 更多 +
排行榜 更多 +