symfony中doctrine常用属性
转 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/basic-mapping.html
1. doctrine字段属性:
<?php
/** @Entity */
class Message
{
/** @Column(type="integer") */
private $id;
/** @Column(length=140) */
private $text;
/** @Column(type="datetime", name="posted_at") */
private $postedAt;
}
- 属性id对应列id,类型为integer
- 属性text对应列text,类型默认为string
- 属性postedAt对应列posted_at,类型为datatime
- type:(默认为‘string’)类型
- name:(默认为字段名称)数据库列名
- length(默认为‘255’)数据库中列值的长度(仅适用于使用string类型的列)
- unique(默认为‘false’)列值是否唯一
- nullable:(默认为‘false’)列是否可为空
- precision:(默认为0)数字的精确值,值存储的最大位数,仅适用于十进制
- scale:(默认为0)数字的长度,仅适用于十进制,表示小数点右侧的位数,不能大于precision值。
- columnDefinition:允许用户定义用于创建列的自定义DDL代码段。注意:这通常会使SchemaTool混淆,以总是检测该列为已更改。
- option:生成DDL语句时传递给底层数据库平台的键值对选项。
- default:如果没有提供值,则为列设置的默认值。
- unsigned:布尔值来确定列是否只能表示非负整数(仅适用于整数列,可能不被所有vendors支持)。
- fixed:布尔值来确定字符串列的指定长度是否应该是固定的或变化的(仅适用于字符串/二进制列,并且可能不被所有vendors支持)。
- comment:注释,可能不被所有vendors支持
- check:向列添加检查约束类型(可能不被所有vendors支持)。
2. doctrine字段类型:
| doctrine | SQL | php |
| string | VARCHAR | string |
| integer | INT | integer |
| smallint | SMALLINT | integer |
| bigint | BIGINT | string |
| boolean | boolean or equivalent (TINYINT) | boolean |
| decimal | DECIMAL | string |
| date | DATETIME | DateTime object |
| time | TIME | DateTime object |
| datetime | DATETIME/TIMESTAMP | DateTime object |
| datetimetz | DATETIME/TIMESTAMP | DateTime object with timezone |
| text | CLOB | string |
| object | CLOB | object using serialize() and unserialize() |
| array | CLOB | array using serialize() and unserialize() |
| simple_array | CLOB | array using implode() and explode() ,使用逗号当分隔符,(注意)仅当值中不包含“,”时方可使用 |
| json_array | CLOB | array using json_encode() and json_decode() |
| float | Float (Double Precision) | double,(注意)仅适用于使用小数点作为分隔符的区域设置 |
| guid | GUID/UUID | string,默认为varchar,但如果平台支持,则使用特定类型。 |
| blob | BLOB | resource stream |
3. 主键(标识键)
可以使用 @Id 注释作为标识符的字段。同时可以使用自动生成器 @GeneratedValue 。
<?php
class Message
{
/**
* @Id @Column(type="integer")
* @GeneratedValue
*/
private $id;
//...
}
3.1 标识键生成策略
- AUTO:(默认),使用数据库优先策略,具有良好的可移植性
- SEQUENCE:使用数据库序列来生成ID。目前没有提供完整的可移植性。
- IDENTITY:在数据库中使用特殊身份列,以生成插入行的值。这个策略目前没有提供完整的可移植性,由以下平台支持:MySQL / SQLite / SQL Anywhere(AUTO_INCREMENT),MSSQL(IDENTITY)和PostgreSQL(SERIAL)。
- UUID:使用内置的通用唯一标识键生成器。这一策略提供了完整的可移植性。
- TABLE:使用单独的表来生成ID。这一策略提供了完整的可移植性。 注意:此策略尚未实施!
- NONE:标识符由代码分配(并由此生成)。必须在新实体传递给 EntityManager#persist 之前进行分配。NONE相当于完全不使用 @GeneratedValue 。
- CUSTOM:可以使用 @CustomIdGenerator 注释,允许通过自己的类生成标识键。
symfony中doctrine常用属性的更多相关文章
- DataGrid中的常用属性
DataGrid中的常用属性 $('#dg').datagrid({ url:'datagrid_data.json', columns:[[ {field:'code',title:'Code',w ...
- JavaScript中Number常用属性和方法
title: JavaScript中Number常用属性和方法 toc: false date: 2018-10-13 12:31:42 Number.MAX_VALUE--1.79769313486 ...
- 面向对象中Object常用属性总结
学完Object属性,自己总结一些常用是Object常用属性. Object.prototype:属性表示Object的原型对象. 属性: Object.prototype.constructor:特 ...
- Android 中 GridView 常用属性合集
GridView的一些常用属性: android:numColumns=”auto_fit” //GridView的列数设置为自动 android:columnWidth=”90dp " / ...
- C#中gridView常用属性和技巧介绍
.隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; .得到当前选定记录某字段的值 sValue=Table.Rows[gridV ...
- DEV中gridview常用属性的设置
1.隐藏最上面的GroupPanel: gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值: sValue=Table.Rows[g ...
- DEV中gridview常用属性
1.隐藏最上面的GroupPanel: gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值: sValue=Table.Rows[g ...
- javascript中array常用属性方法
属性: length 表示一个无符号 32-bit 整数,返回一个数组中的元素个数. 截短数组..截短至长度2 则: .length = 2 方法: Array.from() 方法可以将一个类数 ...
- CSS中的常用属性
一 CSS文字属性:color : #999999; /*文字颜色*/font-family : 宋体,sans-serif; /*文字字体*/font-size : 9pt; /*文字大小*/fon ...
随机推荐
- VMware Workstation 12 安装mac os x 10.11
本人近期在学习iOS开发,由于初学,购买设备有点太昂贵了点.和我有意向想法的朋友能够看看在这篇文章.在虚拟机里装MAC os系统. 第一步:准备 VMware Workstation 12版本号 ma ...
- ios开发runtime学习二:runtime交换方法
#import "ViewController.h" /* Runtime(交换方法):主要想修改系统的方法实现 需求: 比如说有一个项目,已经开发了2年,忽然项目负责人添加一个功 ...
- 在word中使用notepad++实现代码的语法高亮 分类: C_OHTERS 2013-09-22 10:38 2273人阅读 评论(0) 收藏
转载自:http://blog.csdn.net/woohello/article/details/7621651 有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩 ...
- margin隐藏最后的切割线
<style> *{margin: 0;padding: 0;} #demo li{ border-bottom: 1px solid #ccc; } #demo ul{ margin-b ...
- Snmp常用oid
http://blog.csdn.net/youngqj/article/details/7311849 系统参数(1.3.6.1.2.1.1) OID 描述 备注 请求方式 .1.3.6.1.2 ...
- Flink执行时之流处理程序生成流图
流处理程序生成流图 DataStream API所编写的流处理应用程序在生成作业图(JobGraph)并提交给JobManager之前,会预先生成流图(StreamGraph). 什么是流图 流图(S ...
- [Grid Layout] Place grid items on a grid using grid-column and grid-row
It’s possible to position a grid item anywhere on a grid track. To do this, let’s specify some grid- ...
- amazeui中的js插件有哪些(详解功能)
amazeui中的js插件有哪些(详解功能) 一.总结 一句话总结: 二.amazeui中的js插件有哪些 1.UI 增强 警告框Alert 按钮交互Button 折叠面板Collapse 下拉组件D ...
- 【t003】string
Time Limit: 1 second Memory Limit: 50 MB [问题描述] 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为" ...
- 苹果抛弃的芯片公司Imagination被中资49亿溢价收购
原标题:中国资本Canyon Bridge出资5.5亿英镑收购Imagination芯片 来源:观察者网 对于一家手机硬件公司来说,被苹果看上可谓是“一夜之间,鸡犬升天”.但是如果被苹果抛弃了呢?那可 ...