转 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常用属性的更多相关文章

  1. DataGrid中的常用属性

    DataGrid中的常用属性 $('#dg').datagrid({ url:'datagrid_data.json', columns:[[ {field:'code',title:'Code',w ...

  2. JavaScript中Number常用属性和方法

    title: JavaScript中Number常用属性和方法 toc: false date: 2018-10-13 12:31:42 Number.MAX_VALUE--1.79769313486 ...

  3. 面向对象中Object常用属性总结

    学完Object属性,自己总结一些常用是Object常用属性. Object.prototype:属性表示Object的原型对象. 属性: Object.prototype.constructor:特 ...

  4. Android 中 GridView 常用属性合集

    GridView的一些常用属性: android:numColumns=”auto_fit” //GridView的列数设置为自动 android:columnWidth=”90dp " / ...

  5. C#中gridView常用属性和技巧介绍

    .隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; .得到当前选定记录某字段的值 sValue=Table.Rows[gridV ...

  6. DEV中gridview常用属性的设置

    1.隐藏最上面的GroupPanel: gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值: sValue=Table.Rows[g ...

  7. DEV中gridview常用属性

    1.隐藏最上面的GroupPanel: gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值: sValue=Table.Rows[g ...

  8. javascript中array常用属性方法

    属性: length 表示一个无符号 32-bit 整数,返回一个数组中的元素个数. 截短数组..截短至长度2  则:   .length = 2 方法: Array.from() 方法可以将一个类数 ...

  9. CSS中的常用属性

    一 CSS文字属性:color : #999999; /*文字颜色*/font-family : 宋体,sans-serif; /*文字字体*/font-size : 9pt; /*文字大小*/fon ...

随机推荐

  1. Chinese remainder theorem

    https://en.wikipedia.org/wiki/Chinese_remainder_theorem http://planetmath.org/ChineseRemainderTheore ...

  2. OpenStack 之 Nova Compute 的代码结构图

    nova-compute 的代码结构图 如上图所看到的, 类图中最重要的三个Category Manager: 核心的业务类.提供实际的业务操作.比如启动虚拟机等等. Service: 每一个serv ...

  3. 自行实现透明的控件如Panel GroupBox(使用不需要重绘父控件的效果,一切都因为窗口有了WS_EX_TRANSPARENT属性)

    CSDN的Blog开通了.我想这里的Blog作为今后自己回答别人问题的时候,收藏答案的地方很不错呢. 因为社区的贴子早晚都会沉下去,查找起来很不方便,甚至再也找不到呢. Q: http://commu ...

  4. 超级牛X的免费开源小工具之tldr

    github介绍:http://tldr-pages.github.io/ github源码:https://github.com/tldr-pages/tldr 什么是tldr? 新命令行世界?还是 ...

  5. php-post模拟登录,同步登录(摘自网络)

    这也是个老生常谈的话题了,上午花了点时间把这个问题整理了一下. 一般来说用PHP来模拟post提交数据有三种方法,file_get_contents.curl和socket. 写了个公用函数,专门用来 ...

  6. Windows Phone 8.1 FilePicker API

    在 Windows Phone 8.1 中,增加了 FilePicker 的方式与文件打交道,最大的亮点在于这种方式不仅可以浏览手机上的文件,还可以浏览符合协议的应用里的文件! 比如点击 OneDri ...

  7. php字符串转时间戳

    PHP 提供了函数可以方便的将各种形式的日期转换为时间戳,该类函数主要是: strtotime():将任何英文文本的日期时间描述解析为时间戳. mktime():从日期取得时间戳. strtotime ...

  8. Momentum(动量/冲量)的理解及应用

    1. 基本概念(Momentum vs SGD) Momentum 用于加速 SGD(随机梯度下降)在某一方向上的搜索以及抑制震荡的发生. GD(gradient descent) θt=θt−1−η ...

  9. Android 关于录音文件的编解码 实现米聊 微信一类的录音上传的功能

    最近老大要求做一个类米聊的app,于是就去找解决方案,首先用Android本身的MediaRecorder肯定是不行的,只支持amr,wav,acc,如果要做到Android,Iphone,pc通用的 ...

  10. [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 ...