CakePHP框架首页: http://www.cakephp.org/
下载后导入工程中,目录结构如下图(使用版本:1.1.19.6305)
搭建PHP环境,这里使用了AppServ2.5.9。 下载主页 http://www.appservnetwork.com/
MySQL中新建数据库blog,并运行如下SQL文建表。
/**/
/* First, create our posts table: */
CREATE
TABLE
posts (
id
INT
UNSIGNED AUTO_INCREMENT
PRIMARY
KEY
,
title
VARCHAR
(
50
),
body
TEXT
,
created
DATETIME
DEFAULT
NULL
,
modified
DATETIME
DEFAULT
NULL
);

/**/
/* Then insert some posts for testing: */
INSERT
INTO
posts (title,body,created)
VALUES
(
'
The title
'
,
'
This is the post body.
'
, NOW());
INSERT
INTO
posts (title,body,created)
VALUES
(
'
A title once again
'
,
'
And the post body follows.
'
, NOW());
INSERT
INTO
posts (title,body,created)
VALUES
(
'
Title strikes back
'
,
'
This is really exciting! Not.
'
, NOW());
修改工程app/config/目录下database.php.default文件名为database.php,并修改其配置。
修改Apache的httpd.conf文件。
Apache2.2版本的,直接把#LoadModule rewrite_modulemodules/mod_rewrite.so的注释删掉即可。
2.0以前的版本,据说要修改2个地方: LoadModule rewrite_module libexec/httpd/mod_rewrite.so 和AddModule mod_rewrite.c
增加Model:
/app/models/post.php
代码:
<?
php
require_once
(
'
cake/app_model.php
'
);
class
Post
extends
AppModel {
public
$name
=
'
Post
'
;
public
$validate
=
array
(
'
title
'
=>
VALID_NOT_EMPTY
,
'
body
'
=>
VALID_NOT_EMPTY
);
}
?>
增加Cotroller模块:
app/controllers/posts_controller.php
代码:
<?
php
require_once
(
'
cake/app_controller.php
'
);
class
PostsController
extends
AppController {
public
$name
=
'
Posts
'
;
function
index()
{
$this
->
set(
'
posts
'
,
$this
->
Post
->
findAll());
}
function
view(
$id
=
null
)
{
$this
->
Post
->
id
=
$id
;
$this
->
set(
'
post
'
,
$this
->
Post
->
read());
}
function
add()
{
if
(
!
empty
(
$this
->
data))
{
if
(
$this
->
Post
->
save(
$this
->
data))
{
//
$this->flash('Your post has been saved.','/posts');
$this
->
redirect(
"
/posts/index
"
);
}
}
}
function
delete(
$id
)
{
$this
->
Post
->
del(
$id
);
//
$this->flash('The post with id: '.$id.' has been deleted.', '/posts');
$this
->
redirect(
"
/posts/index
"
);
}
function
edit(
$id
=
null
)
{
if
(
empty
(
$this
->
data))
{
$this
->
Post
->
id
=
$id
;
$this
->
data
=
$this
->
Post
->
read();
}
else
{
if
(
$this
->
Post
->
save(
$this
->
data[
'
Post
'
]))
{
//
$this->flash('Your post has been updated.','/posts');
$this
->
redirect(
"
/posts/index
"
);
}
}
}
}
?>
增加页面模块:
/app/views/下追加posts文件夹,然后再添加4个页面(一般后缀为.rhtml)
代码依次为:
index.thtml
<
h1
>
Blog posts
</
h1
>
<
p
>
<?
php echo $html->link("Add Post", "/posts/add");
?>
<
table
>
<
tr
>
<
th
>
Id
</
th
>
<
th
>
Title
</
th
>
<
th
>
Created
</
th
>
</
tr
>

<!--
Here's where we loop through our $posts array, printing out post info
-->

<?
php foreach ($posts as $post):
?>
<
tr
>
<
td
>
<?
php echo $post['Post']['id'];
?>
</
td
>
<
td
>
<?
php echo $html->link($post['Post']['title'], '/posts/view/'.$post['Post']['id']);
?>
<?
php echo $html->link(
'Delete',
"/posts/delete/{$post['Post']['id']}",
null,
'Are you sure?'
)
?>
<?
php echo $html->link('Edit', '/posts/edit/'.$post['Post']['id']);
?>
</
td
>
</
td
>
<
td
>
<?
php echo $post['Post']['created'];
?>
</
td
>
</
tr
>
<?
php endforeach;
?>

</
table
>
view.thtml
<
h1
>
<?
php echo $post['Post']['title']
?>
</
h1
>

<
p
><
small
>
Created:
<?
php echo $post['Post']['created']
?>
</
small
></
p
>

<
p
>
<?
php echo $post['Post']['body']
?>
</
p
>

<
br
>

<
p
>
<?
php echo $html->link('Return', '/posts/index/');
?>
</
p
>
edit.thtml
<
h1
>
Edit Post
</
h1
>
<
form
method
="post"
action
="<?php echo $html->url('/posts/edit')?>"
>
<?
php echo $html->hidden('Post/id');
?>
<
p
>
Title:
<?
php echo $html->input('Post/title', array('size' => '40'))
?>
<?
php echo $html->tagErrorMsg('Post/title', 'Title is required.')
?>
</
p
>
<
p
>
Body:
<?
php echo $html->textarea('Post/body', array('rows'=>'10'))
?>
<?
php echo $html->tagErrorMsg('Post/body', 'Body is required.')
?>
</
p
>
<
p
>
<?
php echo $html->submit('Save')
?>
</
p
>
</
form
>
add.thtml
<
h1
>
Add Post
</
h1
>
<
form
method
="post"
action
="<?php echo $html->url('/posts/add')?>"
>
<
p
>
Title:
<?
php echo $html->input('Post/title', array('size' => '40'))
?>
<?
php echo $html->tagErrorMsg('Post/title', 'Title is required.')
?>
</
p
>
<
p
>
Body:
<?
php echo $html->textarea('Post/body', array('rows'=>'10'))
?>
<?
php echo $html->tagErrorMsg('Post/body', 'Body is required.')
?>
</
p
>
<
p
>
<?
php echo $html->submit('Save')
?>
</
p
>
</
form
>
测试URL: http://localhost/phpblog/posts/
参考网页:http://manual.cakephp.org/appendix/blog_tutorial
以下是CakePHP框架的一些特性: http://www.lostk.com/blog/cakephp_note/
本文介绍如何使用CakePHP框架快速搭建一个具备增删改查功能的简易博客系统,包括环境配置、数据库设置及各模块实现。
364

被折叠的 条评论
为什么被折叠?



