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 ...
随机推荐
- Chinese remainder theorem
https://en.wikipedia.org/wiki/Chinese_remainder_theorem http://planetmath.org/ChineseRemainderTheore ...
- OpenStack 之 Nova Compute 的代码结构图
nova-compute 的代码结构图 如上图所看到的, 类图中最重要的三个Category Manager: 核心的业务类.提供实际的业务操作.比如启动虚拟机等等. Service: 每一个serv ...
- 自行实现透明的控件如Panel GroupBox(使用不需要重绘父控件的效果,一切都因为窗口有了WS_EX_TRANSPARENT属性)
CSDN的Blog开通了.我想这里的Blog作为今后自己回答别人问题的时候,收藏答案的地方很不错呢. 因为社区的贴子早晚都会沉下去,查找起来很不方便,甚至再也找不到呢. Q: http://commu ...
- 超级牛X的免费开源小工具之tldr
github介绍:http://tldr-pages.github.io/ github源码:https://github.com/tldr-pages/tldr 什么是tldr? 新命令行世界?还是 ...
- php-post模拟登录,同步登录(摘自网络)
这也是个老生常谈的话题了,上午花了点时间把这个问题整理了一下. 一般来说用PHP来模拟post提交数据有三种方法,file_get_contents.curl和socket. 写了个公用函数,专门用来 ...
- Windows Phone 8.1 FilePicker API
在 Windows Phone 8.1 中,增加了 FilePicker 的方式与文件打交道,最大的亮点在于这种方式不仅可以浏览手机上的文件,还可以浏览符合协议的应用里的文件! 比如点击 OneDri ...
- php字符串转时间戳
PHP 提供了函数可以方便的将各种形式的日期转换为时间戳,该类函数主要是: strtotime():将任何英文文本的日期时间描述解析为时间戳. mktime():从日期取得时间戳. strtotime ...
- Momentum(动量/冲量)的理解及应用
1. 基本概念(Momentum vs SGD) Momentum 用于加速 SGD(随机梯度下降)在某一方向上的搜索以及抑制震荡的发生. GD(gradient descent) θt=θt−1−η ...
- Android 关于录音文件的编解码 实现米聊 微信一类的录音上传的功能
最近老大要求做一个类米聊的app,于是就去找解决方案,首先用Android本身的MediaRecorder肯定是不行的,只支持amr,wav,acc,如果要做到Android,Iphone,pc通用的 ...
- [Ramda] Create a Query String from an Object using Ramda's toPairs function
In this lesson, we'll use Ramda's toPairs function, along with map, join, concatand compose to creat ...