Zend Column Types

Doctrine Entity Data Types Table

Doctrine Type

Column Type in DB

Example Annotation

Description

string

VARCHAR

@ORM\Column(type="string", length=255)

A string up to a defined length

text

TEXT

@ORM\Column(type="text")

Longer text field

integer

INT

@ORM\Column(type="integer")

Standard integer

smallint

SMALLINT

@ORM\Column(type="smallint")

Small integer

bigint

BIGINT

@ORM\Column(type="bigint")

Big integer

boolean

BOOLEAN

@ORM\Column(type="boolean")

True/False value

decimal

DECIMAL

@ORM\Column(type="decimal", precision=10, scale=2)

Fixed-precision number

float

FLOAT

@ORM\Column(type="float")

Floating-point number

date

DATE

@ORM\Column(type="date")

Date only (Y-m-d)

datetime

DATETIME

@ORM\Column(type="datetime")

Date + Time (Y-m-d H:i:s)

datetimetz

DATETIME w/ timezone

@ORM\Column(type="datetimetz")

DateTime with time zone

time

TIME

@ORM\Column(type="time")

Time only (H:i:s)

array

TEXT (serialized)

@ORM\Column(type="array")

PHP array (stored serialized)

json

JSON

@ORM\Column(type="json")

Native JSON (if DB supports)

object

TEXT (serialized)

@ORM\Column(type="object")

PHP object (serialized)

simple_array

VARCHAR (CSV)

@ORM\Column(type="simple_array")

CSV string → PHP array

guid

UUID/GUID

@ORM\Column(type="guid")

Globally unique identifier

binary

BLOB

@ORM\Column(type="binary")

Binary data (e.g., file blob)

blob

BLOB

@ORM\Column(type="blob")

Binary large object

enum(custom)

ENUM

❌ Must define manually as custom type

Not native in Doctrine, needs DB/platform config


Custom Type Example (ENUM in MySQL)

If you want to use ENUM:

@ORM\Column(type="string", columnDefinition="ENUM('active', 'inactive')")

Doctrine Entity Field Configuration 

Option

Purpose

Sample Usage

type

Data type for the column

@ORM\Column(type="string")

length

Max length (used with string)

@ORM\Column(type="string", length=100)

precision

Total digits for decimal/float

@ORM\Column(type="decimal", precision=10, scale=2)

scale

Digits after decimal point

@ORM\Column(type="decimal", precision=10, scale=2)

nullable

Whether field can be NULL

@ORM\Column(type="string", nullable=true)

unique

Enforce unique constraint

@ORM\Column(type="string", unique=true)

options

Additional DB-level options (e.g., default)

@ORM\Column(type="string", options={"default": "active"})

columnDefinition

Raw SQL column definition

@ORM\Column(type="string", columnDefinition="ENUM('a', 'b') NOT NULL")

id

Mark as primary key

@ORM\Id

generatedValue

Auto-increment primary key

@ORM\GeneratedValue(strategy="AUTO")

name

Custom column name

@ORM\Column(name="user_email", type="string")


Foreign Key / Relations

Relation Type

Description

Sample Usage

@OneToOne

One-to-one relation

@ORM\OneToOne(targetEntity="Profile")

@ManyToOne

Many-to-one (foreign key)

@ORM\ManyToOne(targetEntity="Category")

@OneToMany

One-to-many (inverse side)

@ORM\OneToMany(targetEntity="Order", mappedBy="user")

@ManyToMany

Many-to-many

@ORM\ManyToMany(targetEntity="Tag")


Join Column (for foreign keys)

Option

Purpose

Sample

@JoinColumn

Defines the join/foreign key column

@JoinColumn(name="category_id", referencedColumnName="id", nullable=false)

name

Column name in current table

name="category_id"

referencedColumnName

Column in foreign table

referencedColumnName="id"

nullable

Can be null

nullable=false

onDelete

Cascade behavior

onDelete="CASCADE"


Whereisstuff is simple learing platform for beginer to advance level to improve there skills in technologies.we will provide all material free of cost.you can write a code in runkit workspace and we provide some extrac features also, you agree to have read and accepted our terms of use, cookie and privacy policy.
© Copyright 2024 www.whereisstuff.com. All rights reserved. Developed by whereisstuff Tech.