当前位置:首页 > 综合实例 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-05 13:57:10 浏览: 评论:0 

这篇文章主要介绍了基于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.  { 
  7.    $this->set('posts'$this->Post->find('all')); 
  8.  } 
  9.  public function view($id=null) 
  10.  { 
  11.    $this->Post->id=$id
  12.    $this->set('post',$this->Post->read()); 
  13.  } 
  14.  public function add() 
  15.  { 
  16.    if($this->request->is("post")) 
  17.    { 
  18.     $this->Post->create(); 
  19.     if($this->Post->save($this->request->data)) 
  20.     { 
  21.       $this->Session->setFlash("your post added!"); 
  22.       $this->redirect(array('action'=>'index')); 
  23.     } 
  24.     else 
  25.     { 
  26.       $this->Session->setFlash("unable to create post!"); 
  27.     } 
  28.    } 
  29.  } 
  30.  public function edit($id=null) 
  31.  { 
  32.    $this->Post->id=$id
  33.    if($this->request->is('get')) 
  34.    { 
  35.      $this->request->data = $this->Post->read(); 
  36.    } 
  37.    else 
  38.    { 
  39.      if($this->Post->save($this->request->data))  
  40.      { 
  41.        $this->Session->setFlash('Your post has been updated.'); 
  42.        $this->redirect(array('action' => 'index')); 
  43.      } 
  44.      else 
  45.      { 
  46.        $this->Session->setFlash('Unable to update your post.'); 
  47.      } 
  48.    } 
  49.  } 
  50.  public function delete($id) { 
  51.     if ($this->request->is('get')) { 
  52.         throw new MethodNotAllowedException(); 
  53.     } 
  54.     if ($this->Post->delete($id)) { 
  55.       $this->Session->setFlash('The post with id: ' . $id . ' has been deleted.'); 
  56.       $this->redirect(array('action' => 'index')); 
  57.     } 
  58.  } 
  59. ?> 

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程序设计有所帮助。

Tags: CakePHP PHP博客系统

分享到: