CakePHP框架首页: http://www.cakephp.org/
下载后导入工程中,目录结构如下图(使用版本:1.1.19.6305)

搭建PHP环境,这里使用了AppServ2.5.9。 下载主页 http://www.appservnetwork.com/
MySQL中新建数据库blog,并运行如下SQL文建表。



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

代码:



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

代码:



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


<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



<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


<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


<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/
e="COLOR: #000000">
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/