Doctrine dispone de una gran cantidad de tipos de campo. Cada uno de ellos mapea un tipo de dato PHP a un tipo específico de columna en función del servidor de base de datos que utilices. La siguiente lista muestra todos los tipos soportados en Doctrine:
- Cadenas de texto
string
(usado para cadenas cortas)text
(usado para cadenas grandes)
- Números
integer
smallint
bigint
decimal
float
- Fechas y horas (utiliza objetos
DateTime
de PHP para estos campos)date
time
datetime
- Otros tipos
boolean
object
(serializado y almacenado en un campoCLOB
)array
(serializado y almacenado en un campoCLOB
)
Para más información, consulta la sección Doctrine Mapping Types de la documentación de Doctrine.
8.7.1. Opciones de campo
Cada campo puede definir varias opciones de configuración. Las opciones disponibles incluyen type
(el predeterminado es string
), name
, length
, unique
y nullable
. Aquí tienes algunos ejemplos:
/**
* Un campo cadena con una longitud de 255 caracteres que no puede ser nulo
* (estos son los valores por defecto de las opciones 'type', 'length' y
* '*nullable')
*
* @ORM\Column()
*/
protected $name;
/**
* Un campo cadena de 150 caracteres de longitud que se persiste a una columna
* llamada 'email_address' y que tiene un índice único.
*
* @ORM\Column(name="email_address", unique=true, length=150)
*/
protected $email;
fields:
# Un campo cadena de longitud 255 que no puede ser null
# (que son los valores por defecto de las opciones 'length' y 'nullable')
# el atributo 'type' es necesario en las definiciones yaml
name:
type: string
# Un campo cadena de longitud 150 que persiste a una columna 'email_address'
# y tiene un índice único.
email:
type: string
column: email_address
length: 150
unique: true
Nota Hay algunas opciones más que no figuran en esta lista. Para más detalles, consulta la sección Property Mapping de la documentación de Doctrine.