一个最本的Blog程序除了能够发布文章,还应该让其它用户添加评论,前面的几步都是针对post作为例子,只有一个表,这里加入一些其它表,让一个blog具备基本一些最基本的元素。

删除之前的posts,重新创建Blog的模型,创建数据库的scripts如下。

CREATE TABLE `comments` (

`id` int(11) NOT NULL auto_increment,

`name` varchar(64) NOT NULL,

`content` text NOT NULL,

`post_id` int(11) NOT NULL,

`commenter` varchar(64) NOT NULL,

`url` varchar(256) default NULL,

PRIMARY KEY  (`id`)

)  ;

CREATE TABLE `posts` (

`id` int(11) NOT NULL auto_increment,

`name` varchar(64) NOT NULL,

`content` text NOT NULL,

`created` date default NULL,

`modified` date default NULL,

`user_id` int(11) NOT NULL,

PRIMARY KEY  (`id`)

)  ;

DROP TABLE IF EXISTS `posts_tags`;

CREATE TABLE `posts_tags` (

`id` int(11) NOT NULL auto_increment,

`post_id` int(11) NOT NULL,

`tag_id` int(11) NOT NULL,

PRIMARY KEY  (`id`)

)  ;

DROP TABLE IF EXISTS `profiles`;

CREATE TABLE `profiles` (

`id` int(11) NOT NULL auto_increment,

`firstname` varchar(64) NOT NULL,

`lastname` varchar(64) NOT NULL,

`user_id` int(11) NOT NULL,

PRIMARY KEY  (`id`)

) ;

DROP TABLE IF EXISTS `tags`;

CREATE TABLE `tags` (

`id` int(11) NOT NULL auto_increment,

`name` varchar(64) default NULL,

PRIMARY KEY  (`id`)

)  ;

DROP TABLE IF EXISTS `users`;

CREATE TABLE `users` (

`id` int(11) NOT NULL auto_increment,

`username` varchar(64) NOT NULL,

`password` varchar(64) NOT NULL,

`name` varchar(64) NOT NULL,

`email` varchar(64) NOT NULL,

PRIMARY KEY  (`id`)

) ;

在app/models下创建相应的Model文件。

模型Post的文件app/models/post.php内容如下。

模型Comment 的文件app/models/comment.php的内容如下。

模型User的文件app/models/user.php的内容如下。

模型Tag 的文件是app/models/tag.php,其内容如下。

posts_tags 作为一个关联表不生成模型文件。

其实你也可以利用bake工具来完成这些基础的代码。

打开Terminal,进入app目录,运行../cake/console/cake bake。

[hantsy@localhost app]$ ../cake/console/cake bake

Welcome to CakePHP v1.2.0.7692 RC3 Console

---------------------------------------------------------------

App : app

Path: /home/hantsy/public_html/cakeblog/app

---------------------------------------------------------------

Interactive Bake Shell

---------------------------------------------------------------

[D]atabase Configuration

[M]odel

[V]iew

[C]ontroller

[P]roject

[Q]uit

What would you like to Bake? (D/M/V/C/P/Q)

>

选择M,根据向导一步步的创建模型文件。

你也可以输入 ../cake/console/cake bake model 来减少一些步骤。

[hantsy@localhost app]$ ../cake/console/cake bake model

Welcome to CakePHP v1.2.0.7692 RC3 Console

---------------------------------------------------------------

App : app

Path: /home/hantsy/public_html/cakeblog/app

---------------------------------------------------------------

---------------------------------------------------------------

Bake Model

Path: /home/hantsy/public_html/cakeblog/app/models/

---------------------------------------------------------------

Use Database Config: (default/test)

[default] >

Possible Models based on your current database:

1. Comment

2. Post

3. PostsTag

4. Profile

5. Tag

6. User

Enter a number from the list above, type in the name of another model, or 'q' to exit

[q] >

或 ../cake/console/cake bake model 如Post ,它不提供交互方式,直接生成文件,内容最简洁。

[hantsy@localhost app]$ ../cake/console/cake bake model Post

Welcome to CakePHP v1.2.0.7692 RC3 Console

---------------------------------------------------------------

App : app

Path: /home/hantsy/public_html/cakeblog/app

---------------------------------------------------------------

Baking model class for Post...

Creating file /home/hantsy/public_html/cakeblog/app/models/post.php

前面已介绍过模型命名方面的一些约定,这里不再重复。

对于表,除前面的提到的表名约定以外,字段也有一些约定。

必须有一个名为id的主键。

如果有一个名name 或title 的属性,会自动作为$scaffold页面的标题,fieldset标题,或label,当生成下拉列表时,自动作为列表名称显示出来。

如果表包含datetime类型的created 和modified 属性,在新建记录时会在created 和modified 两个字段插入当前日期,更新时会更新modified字段。

cakephp oracle,CakePHP入门(8)-创建Model相关推荐

  1. cakephp oracle,Cakephp的魔法函数解析,findBy…

    Cakephp的一个非常有意思的特色,就是,可以通过它的Model使用类似于findBy(Fields)这样的方法直接取得数据的调用,例如,我们可以直接取得ID为5的数据,可以这样: $data =$ ...

  2. php cakephp like,cakephp常见知识点汇总

    本文实例总结了cakephp常见知识点.分享给大家供大家参考,具体如下: 1. 调用其他控制器的模板,重定向 方法一: 在此调用/views/tasks/tasks下的hello.ctp模板 $thi ...

  3. 1. oracle学习入门系列之一 数据库发展与历史

    oracle学习入门系列之一 数据库发展与历史 这个oracle学习入门系列是根据本人工作中的一些笔记.项目进行回忆.整理.一方面是自己知识积累,便于技能提升:另一方面是和小伙伴们共进退互通有无,做一 ...

  4. 如何在Oracle上使用AUTO_INCREMENT创建ID?

    本文翻译自:How to create id with AUTO_INCREMENT on Oracle? It appears that there is no concept of AUTO_IN ...

  5. 系列文章--oracle简单入门教程

    oracle入门很简单:八.oracle数据表 1.创建oracle数据表创建oracle数据表的语法如下: create table命令用于创建一个oracle数据表:括号内列出了数据表应当包含的列 ...

  6. Oracle编程入门经典 第12章 事务处理和并发控制

    目录 12.1          什么是事务处理... 1 12.2          事务处理控制语句... 1 12.2.1       COMMIT处理... 2 12.2.2       RO ...

  7. Oracle编程入门经典 第11章 过程、函数和程序包

    目录 11.1          优势和利益... 1 11.2          过程... 1 11.2.1       语法... 2 11.2.2       建立或者替换... 2 11.2 ...

  8. Oracle编程入门经典 第10章 PLSQL

    目录 10.1          总览... 1 10.2          基于程序块的开发... 1 试验:PL/SQL程序块... 2 工作原理... 2 块嵌套... 2 10.3       ...

  9. Oracle编程入门经典 第9章 掌握SQL*Plus

    目录 9.1             高级启动选项... 1 9.1.1         LOGON.. 2 9.1.2         设置描述文件... 2 9.1.3         START ...

最新文章

  1. 将FeatClass属性表高效率转换成DataTable
  2. 什么是BGP,BGP的优点有哪些?-Vecloud
  3. android eclipse中导入framework.jar以及使用其隐藏类的方法
  4. 织入业务代码-LogAspect
  5. 数据层HikariCP与MyBatis整合
  6. Android 调用系统邮件,发送邮件到指定邮箱
  7. Python 数据分析三剑客之 NumPy(四):字符串函数总结与对比
  8. JavaWeb学习笔记-目录(待完成)
  9. Java OCR tesseract 图像智能字符识别技术
  10. document.body、document.documentElement和window获取视窗大小的差别
  11. 高薪利器:四大热门云计算认证推荐
  12. 使用flutter控制蓝牙通讯_使用Flutter控制蓝牙通讯
  13. beyond compare 强制使用二进制传输,保证文件一样
  14. Microsoft Visual SourceSafe 6.0 关联VS
  15. 《Context and Attribute Grounded Dense Captioning》笔记
  16. 千古兴亡多少事,一江春水向东流--转任总文章
  17. ffmpeg批量将图片合并为视频
  18. 凯文.都迪的超级记忆力训练教程
  19. 空气炸锅炸鸡腿多少度多少分钟最好(空气炸锅炸鸡腿多少度多长时间)
  20. html中文本重复,在网页中去除文本列表中重复行与计算重复次数的代码原理

热门文章

  1. erp服务器安装虚拟打印机,远程打印软件
  2. nCode:DesignLife案例教程九
  3. 密评复习(选择+简答)
  4. python3爬虫之二:爬取网页图片
  5. 统计机器学习【1】- 入门机器学习(一)
  6. 中科大-计算机类考研真题(初试笔试真题详解+复试笔试机试真题详解+面试问题汇总分析)
  7. 国美公告暂停黄光裕及其妻杜鹃职务
  8. Cadence Allegro如何恢复默认菜单栏设置
  9. 12306订票助手 (版本 3.5.0)
  10. xbox360 功率测试软件,Xbox Series X完整开箱照及功耗测试公开