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 ...
随机推荐
- 我的前端规范——JavaScript篇
相关文章 简书原文:https://www.jianshu.com/p/5918c283cdc3 我的前端规范——开篇:http://www.cnblogs.com/shcrk/p/9271561.h ...
- 【44.64%】【codeforces 743C】Vladik and fractions
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- [JS Compose] 2. Enforce a null check with composable code branching using Either
We define the Either type and see how it works. Then try it out to enforce a null check and branch o ...
- CVE-2014-3566
https://access.redhat.com/articles/1232123 https://tools.ietf.org/html/draft-ietf-tls-downgrade-scsv ...
- SPOJ4491. Primes in GCD Table(gcd(a,b)=d素数,(1<=a<=n,1<=b<=m))加强版
SPOJ4491. Primes in GCD Table Problem code: PGCD Johnny has created a table which encodes the result ...
- 浏览器对象模型bom的作用是什么?
浏览器对象模型bom的作用是什么? 零.总结 1.BOM提供了独立于内容而与浏览器窗口进行交互的对象 2.BOM提供了一些访问窗口对象的一些方法,我们可以用它来移动窗口位置,改变窗口大小,打开新窗口和 ...
- findbugs静态代码分析工具使用教程
FindBugs 是一个静态分析工具,很多程序猿都在使用,再次详细列出findbugs的使用教程,希望对大家有帮助. 1 安装 FindBugs通过检查类文件或 JAR文件,将字节码与一组缺陷模式进行 ...
- Spring MVC出现POST 400 Bad Request &405 Request method 'GET' not supported
首先描述一下出现错误的情景: 我刚学springmvc,想做一个登录界面的东西.然后试着写了一个controller如下: @RequestMapping(value = "/login&q ...
- qt-4.8.4安装和环境变量配置
在Linux中分别安装应用于不同平台的Qt:PC.嵌入式X86:ARM. 这三者PC版.嵌入式X86版和ARM版的差别主要体如今:当configure时分别加了不同的參数,详细差别是: PC平台(X1 ...
- ANR触发原理
ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造 ...