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

2025-05-29 0 97

本文实例讲述了基于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程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 基于CakePHP实现的简单博客系统实例 https://www.kuaiidc.com/101392.html

相关文章

发表评论
暂无评论