cakephp oracle,CakePHP入门(8)-创建Model
一个最本的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相关推荐
- cakephp oracle,Cakephp的魔法函数解析,findBy…
Cakephp的一个非常有意思的特色,就是,可以通过它的Model使用类似于findBy(Fields)这样的方法直接取得数据的调用,例如,我们可以直接取得ID为5的数据,可以这样: $data =$ ...
- php cakephp like,cakephp常见知识点汇总
本文实例总结了cakephp常见知识点.分享给大家供大家参考,具体如下: 1. 调用其他控制器的模板,重定向 方法一: 在此调用/views/tasks/tasks下的hello.ctp模板 $thi ...
- 1. oracle学习入门系列之一 数据库发展与历史
oracle学习入门系列之一 数据库发展与历史 这个oracle学习入门系列是根据本人工作中的一些笔记.项目进行回忆.整理.一方面是自己知识积累,便于技能提升:另一方面是和小伙伴们共进退互通有无,做一 ...
- 如何在Oracle上使用AUTO_INCREMENT创建ID?
本文翻译自:How to create id with AUTO_INCREMENT on Oracle? It appears that there is no concept of AUTO_IN ...
- 系列文章--oracle简单入门教程
oracle入门很简单:八.oracle数据表 1.创建oracle数据表创建oracle数据表的语法如下: create table命令用于创建一个oracle数据表:括号内列出了数据表应当包含的列 ...
- Oracle编程入门经典 第12章 事务处理和并发控制
目录 12.1 什么是事务处理... 1 12.2 事务处理控制语句... 1 12.2.1 COMMIT处理... 2 12.2.2 RO ...
- Oracle编程入门经典 第11章 过程、函数和程序包
目录 11.1 优势和利益... 1 11.2 过程... 1 11.2.1 语法... 2 11.2.2 建立或者替换... 2 11.2 ...
- Oracle编程入门经典 第10章 PLSQL
目录 10.1 总览... 1 10.2 基于程序块的开发... 1 试验:PL/SQL程序块... 2 工作原理... 2 块嵌套... 2 10.3 ...
- Oracle编程入门经典 第9章 掌握SQL*Plus
目录 9.1 高级启动选项... 1 9.1.1 LOGON.. 2 9.1.2 设置描述文件... 2 9.1.3 START ...
最新文章
- 将FeatClass属性表高效率转换成DataTable
- 什么是BGP,BGP的优点有哪些?-Vecloud
- android eclipse中导入framework.jar以及使用其隐藏类的方法
- 织入业务代码-LogAspect
- 数据层HikariCP与MyBatis整合
- Android 调用系统邮件,发送邮件到指定邮箱
- Python 数据分析三剑客之 NumPy(四):字符串函数总结与对比
- JavaWeb学习笔记-目录(待完成)
- Java OCR tesseract 图像智能字符识别技术
- document.body、document.documentElement和window获取视窗大小的差别
- 高薪利器:四大热门云计算认证推荐
- 使用flutter控制蓝牙通讯_使用Flutter控制蓝牙通讯
- beyond compare 强制使用二进制传输,保证文件一样
- Microsoft Visual SourceSafe 6.0 关联VS
- 《Context and Attribute Grounded Dense Captioning》笔记
- 千古兴亡多少事,一江春水向东流--转任总文章
- ffmpeg批量将图片合并为视频
- 凯文.都迪的超级记忆力训练教程
- 空气炸锅炸鸡腿多少度多少分钟最好(空气炸锅炸鸡腿多少度多长时间)
- html中文本重复,在网页中去除文本列表中重复行与计算重复次数的代码原理