本文实例讲述了基于CakePHP实现的简单博客系统。分享给大家供大家参考。具体实现方法如下:
PostsController.php文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<?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文件:
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php class Post extends AppModel { public $validate = array ( 'title' => array ( 'rule' => 'notEmpty' ), 'body' => array ( 'rule' => 'notEmpty' ) ); } ?> |
routes.php文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
<?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文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
-- 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' , '7777777777777777777777777\r\n777777777777777777777777' , '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程序设计有所帮助。