本文实例讲述了基于cakephp实现的简单博客系统。分享给大家供大家参考。具体实现方法如下:
postscontroller.php文件:
<?php
class postscontroller extends appcontroller {
public $helpers = array('html', 'form', 'session');
public $components = array('session');
public function index()
{
$this->set('posts', $this->post->find('all'));
}
public function view($id=null)
{
$this->post->id=$id;
$this->set('post',$this->post->read());
}
public function add()
{
if($this->request->is("post"))
{
$this->post->create();
if($this->post->save($this->request->data))
{
$this->session->setflash("your post added!");
$this->redirect(array('action'=>'index'));
}
else
{
$this->session->setflash("unable to create post!");
}
}
}
public function edit($id=null)
{
$this->post->id=$id;
if($this->request->is('get'))
{
$this->request->data = $this->post->read();
}
else
{
if($this->post->save($this->request->data))
{
$this->session->setflash('your post has been updated.');
$this->redirect(array('action' => 'index'));
}
else
{
$this->session->setflash('unable to update your post.');
}
}
}
public function delete($id) {
if ($this->request->is('get')) {
throw new methodnotallowedexception();
}
if ($this->post->delete($id)) {
$this->session->setflash('the post with id: ' . $id . ' has been deleted.');
$this->redirect(array('action' => 'index'));
}
}
}
?>
post.php文件:
<?php
class post extends appmodel {
public $validate = array(
'title' => array(
'rule' => 'notempty'
),
'body' => array(
'rule' => 'notempty'
)
);
}
?>
routes.php文件:
<?php
/**
* routes configuration
*
* in this file, you set up routes to your controllers and their actions.
* routes are very important mechanism that allows you to freely connect
* different urls to chosen controllers and their actions (functions).
*
* php 5
*
* cakephp(tm) : rapid development framework (http://cakephp.org)
* copyright 2005-2012, cake software foundation, inc. (http://cakefoundation.org)
*
* licensed under the mit license
* redistributions of files must retain the above copyright notice.
*
* @copyright copyright 2005-2012, cake software foundation, inc. (http://cakefoundation.org)
* @link http://cakephp.org cakephp(tm) project
* @package app.config
* @since cakephp(tm) v 0.2.9
* @license mit license (http://www.opensource.org/licenses/mit-license.php)
*/
/**
* here, we are connecting '/' (base path) to controller called 'pages',
* its action called 'display', and we pass a param to select the view file
* to use (in this case, /app/view/pages/home.ctp)...
*/
//router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
router::connect('/', array('controller' => 'posts', 'action' => 'index'));
/**
* ...and connect the rest of 'pages' controller's urls.
*/
router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
/**
* load all plugin routes. see the cakeplugin documentation on
* how to customize the loading of plugin routes.
*/
cakeplugin::routes();
/**
* load the cakephp default routes. only remove this if you do not want to use
* the built-in default routes.
*/
require cake . 'config' . ds . 'routes.php';
blog.sql文件如下:
-- mysql dump 10.13 distrib 5.5.19, for win64 (x86)
--
-- host: localhost database: facebook
-- ------------------------------------------------------
-- server version 5.5.19
/*!40101 set @old_character_set_client=@@character_set_client */;
/*!40101 set @old_character_set_results=@@character_set_results */;
/*!40101 set @old_collation_connection=@@collation_connection */;
/*!40101 set names utf8 */;
/*!40103 set @old_time_zone=@@time_zone */;
/*!40103 set time_zone='+00:00' */;
/*!40014 set @old_unique_checks=@@unique_checks, unique_checks=0 */;
/*!40014 set @old_foreign_key_checks=@@foreign_key_checks, foreign_key_checks=0 */;
/*!40101 set @old_sql_mode=@@sql_mode, sql_mode='no_auto_value_on_zero' */;
/*!40111 set @old_sql_notes=@@sql_notes, sql_notes=0 */;
--
-- table structure for table `posts`
--
drop table if exists `posts`;
/*!40101 set @saved_cs_client = @@character_set_client */;
/*!40101 set character_set_client = utf8 */;
create table `posts` (
`id` int(10) unsigned not null auto_increment,
`title` varchar(50) collate utf8_unicode_ci default null,
`body` text collate utf8_unicode_ci,
`created` datetime default null,
`modified` datetime default null,
primary key (`id`)
) engine=innodb auto_increment=5 default charset=utf8 collate=utf8_unicode_ci;
/*!40101 set character_set_client = @saved_cs_client */;
--
-- dumping data for table `posts`
--
lock tables `posts` write;
/*!40000 alter table `posts` disable keys */;
insert into `posts` values (1,'the title','this is the post body.','2012-11-01 15:43:41',null),(2,'a title once again','and the post body follows.','2012-11-01 15:43:41',null),(3,'title strikes back','this is really exciting! not.','2012-11-01 15:43:41',null),(4,'ggjjkhkhhk','7777777777777777777777777rn777777777777777777777777','2012-11-01 20:16:28','2012-11-01 20:16:28');
/*!40000 alter table `posts` enable keys */;
unlock tables;
--
-- table structure for table `schema_migrations`
--
drop table if exists `schema_migrations`;
/*!40101 set @saved_cs_client = @@character_set_client */;
/*!40101 set character_set_client = utf8 */;
create table `schema_migrations` (
`version` varchar(255) collate utf8_unicode_ci not null,
unique key `unique_schema_migrations` (`version`)
) engine=innodb default charset=utf8 collate=utf8_unicode_ci;
/*!40101 set character_set_client = @saved_cs_client */;
--
-- dumping data for table `schema_migrations`
--
lock tables `schema_migrations` write;
/*!40000 alter table `schema_migrations` disable keys */;
insert into `schema_migrations` values ('20121013024711'),('20121013030850');
/*!40000 alter table `schema_migrations` enable keys */;
unlock tables;
/*!40103 set time_zone=@old_time_zone */;
/*!40101 set sql_mode=@old_sql_mode */;
/*!40014 set foreign_key_checks=@old_foreign_key_checks */;
/*!40014 set unique_checks=@old_unique_checks */;
/*!40101 set character_set_client=@old_character_set_client */;
/*!40101 set character_set_results=@old_character_set_results */;
/*!40101 set collation_connection=@old_collation_connection */;
/*!40111 set sql_notes=@old_sql_notes */;
-- dump completed on 2012-11-01 16:41:46
希望本文所述对大家的php程序设计有所帮助。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!