首页 > 开发 > PHP > 正文

基于CakePHP实现的简单博客系统实例

2024-05-04 23:36:55
字体:
来源:转载
供稿:网友

这篇文章主要介绍了基于CakePHP实现的简单博客系统,以一个完整实例分析了使用CakePHP实现博客系统的完整流程,需要的朋友可以参考下

本文实例讲述了基于CakePHP实现的简单博客系统。分享给大家供大家参考。具体实现方法如下:

PostsController.php文件:

 

 
  1. <?php 
  2. class PostsController extends AppController { 
  3. public $helpers = array('Html''Form''Session'); 
  4. public $components = array('Session'); 
  5. public function index()  
  6. $this->set('posts'$this->Post->find('all')); 
  7. public function view($id=null) 
  8. $this->Post->id=$id
  9. $this->set('post',$this->Post->read()); 
  10. public function add() 
  11. if($this->request->is("post")) 
  12. $this->Post->create(); 
  13. if($this->Post->save($this->request->data)) 
  14. $this->Session->setFlash("your post added!"); 
  15. $this->redirect(array('action'=>'index')); 
  16. else 
  17. $this->Session->setFlash("unable to create post!"); 
  18. public function edit($id=null) 
  19. $this->Post->id=$id
  20. if($this->request->is('get')) 
  21. $this->request->data = $this->Post->read(); 
  22. else 
  23. if($this->Post->save($this->request->data))  
  24. $this->Session->setFlash('Your post has been updated.'); 
  25. $this->redirect(array('action' => 'index')); 
  26. else 
  27. $this->Session->setFlash('Unable to update your post.'); 
  28. public function delete($id) { 
  29. if ($this->request->is('get')) { 
  30. throw new MethodNotAllowedException(); 
  31. if ($this->Post->delete($id)) { 
  32. $this->Session->setFlash('The post with id: ' . $id . ' has been deleted.'); 
  33. $this->redirect(array('action' => 'index')); 
  34. ?> 

Post.php文件:

 

 
  1. <?php 
  2. class Post extends AppModel { 
  3. public $validate = array
  4. 'title' => array
  5. 'rule' => 'notEmpty' 
  6. ), 
  7. 'body' => array
  8. 'rule' => 'notEmpty' 
  9. ); 
  10. ?> 

routes.php文件:

 

 
  1. <?php 
  2. /** 
  3. * Routes configuration 
  4. * 
  5. * In this file, you set up routes to your controllers and their actions. 
  6. * Routes are very important mechanism that allows you to freely connect 
  7. * different urls to chosen controllers and their actions (functions). 
  8. * 
  9. * PHP 5 
  10. * 
  11. * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) 
  12. * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org) 
  13. * 
  14. * Licensed under The MIT License 
  15. * Redistributions of files must retain the above copyright notice. 
  16. * 
  17. * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org) 
  18. * @link http://cakephp.org CakePHP(tm) Project 
  19. * @package app.Config 
  20. * @since CakePHP(tm) v 0.2.9 
  21. * @license MIT License (http://www.opensource.org/licenses/mit-license.php) 
  22. */ 
  23. /** 
  24. * Here, we are connecting '/' (base path) to controller called 'Pages', 
  25. * its action called 'display', and we pass a param to select the view file 
  26. * to use (in this case, /app/View/Pages/home.ctp)... 
  27. */ 
  28. //Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home')); 
  29. Router::connect('/'array('controller' => 'posts''action' => 'index')); 
  30. /** 
  31. * ...and connect the rest of 'Pages' controller's urls. 
  32. */ 
  33. Router::connect('/pages/*'array('controller' => 'pages''action' => 'display')); 
  34. /** 
  35. * Load all plugin routes. See the CakePlugin documentation on  
  36. * how to customize the loading of plugin routes. 
  37. */ 
  38. CakePlugin::routes(); 
  39. /** 
  40. * Load the CakePHP default routes. Only remove this if you do not want to use 
  41. * the built-in default routes. 
  42. */ 
  43. require CAKE . 'Config' . DS . 'routes.php'

blog.sql文件如下:

 

 
  1. -- MySQL dump 10.13 Distrib 5.5.19, for Win64 (x86) 
  2. -- 
  3. -- Host: localhost Database: facebook 
  4. -- ------------------------------------------------------ 
  5. -- Server version 5.5.19 
  6. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 
  7. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 
  8. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 
  9. /*!40101 SET NAMES utf8 */; 
  10. /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; 
  11. /*!40103 SET TIME_ZONE='+00:00' */; 
  12. /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; 
  13. /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 
  14. /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 
  15. /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; 
  16.  
  17. -- 
  18. -- Table structure for table `posts` 
  19. -- 
  20. DROP TABLE IF EXISTS `posts`; 
  21. /*!40101 SET @saved_cs_client = @@character_set_client */; 
  22. /*!40101 SET character_set_client = utf8 */; 
  23. CREATE TABLE `posts` ( 
  24. `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
  25. `title` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL
  26. `body` text COLLATE utf8_unicode_ci, 
  27. `created` datetime DEFAULT NULL
  28. `modified` datetime DEFAULT NULL
  29. PRIMARY KEY (`id`) 
  30. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 
  31. /*!40101 SET character_set_client = @saved_cs_client */; 
  32. -- 
  33. -- Dumping data for table `posts` 
  34. -- 
  35. LOCK TABLES `posts` WRITE; 
  36. /*!40000 ALTER TABLE `posts` DISABLE KEYS */; 
  37. 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','7777777777777777777777777/r/n777777777777777777777777','2012-11-01 20:16:28','2012-11-01 20:16:28'); 
  38. /*!40000 ALTER TABLE `posts` ENABLE KEYS */; 
  39. UNLOCK TABLES; 
  40. -- 
  41. -- Table structure for table `schema_migrations` 
  42. -- 
  43. DROP TABLE IF EXISTS `schema_migrations`; 
  44. /*!40101 SET @saved_cs_client = @@character_set_client */; 
  45. /*!40101 SET character_set_client = utf8 */; 
  46. CREATE TABLE `schema_migrations` ( 
  47. `version` varchar(255) COLLATE utf8_unicode_ci NOT NULL
  48. UNIQUE KEY `unique_schema_migrations` (`version`) 
  49. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 
  50. /*!40101 SET character_set_client = @saved_cs_client */; 
  51. -- 
  52. -- Dumping data for table `schema_migrations` 
  53. -- 
  54. LOCK TABLES `schema_migrations` WRITE; 
  55. /*!40000 ALTER TABLE `schema_migrations` DISABLE KEYS */; 
  56. INSERT INTO `schema_migrations` VALUES ('20121013024711'),('20121013030850'); 
  57. /*!40000 ALTER TABLE `schema_migrations` ENABLE KEYS */; 
  58. UNLOCK TABLES; 
  59. /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; 
  60. /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; 
  61. /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; 
  62. /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; 
  63. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 
  64. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 
  65. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 
  66. /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; 
  67. -- Dump completed on 2012-11-01 16:41:46 

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表