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:*/
CREATETABLEposts (
idINTUNSIGNED AUTO_INCREMENTPRIMARYKEY,
titleVARCHAR(50),
bodyTEXT,
createdDATETIMEDEFAULTNULL,
modifiedDATETIMEDEFAULTNULL
);

/*Then insert some posts for testing:*/
INSERTINTOposts (title,body,created)
VALUES('The title','This is the post body.', NOW());
INSERTINTOposts (title,body,created)
VALUES('A title once again','And the post body follows.', NOW());
INSERTINTOposts (title,body,created)
VALUES('Title strikes back','This is really exciting! Not.', NOW());








/*Then insert some posts for testing:*/






修改工程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
代码:











增加Cotroller模块:
<?php
require_once('cake/app_controller.php');
classPostsControllerextendsAppController {
public$name='Posts';
functionindex(){
$this->set('posts',$this->Post->findAll());
}

functionview($id=null){
$this->Post->id=$id;
$this->set('post',$this->Post->read());
}

functionadd(){
if(!empty($this->data)){
if($this->Post->save($this->data)){
//$this->flash('Your post has been saved.','/posts');
$this->redirect("/posts/index");
}
}
}

functiondelete($id){
$this->Post->del($id);
//$this->flash('The post with id: '.$id.' has been deleted.', '/posts');
$this->redirect("/posts/index");
}

functionedit($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");
}
}
}
}
?>
<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>
<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>
<h1>Edit Post</h1>
<formmethod="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>
<h1>Add Post</h1>
<formmethod="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>
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>
此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/964.html
app/controllers/posts_controller.php
代码:









































增加页面模块:
/app/views/下追加posts文件夹,然后再添加4个页面(一般后缀为.rhtml)
代码依次为:
index.thtml






























view.thtml





edit.thtml

















add.thtml
















测试URL:http://localhost/phpblog/posts/
参考网页:http://manual.cakephp.org/appendix/blog_tutorial
以下是CakePHP框架的一些特性:http://www.lostk.com/blog/cakephp_note/












