РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
174 of 258 menu

Параметр type атрибута Column

Параметр type атрибута Column указывает Doctrine, в колонку какого типа в базе данных сохранять значение свойства сущности. Атрибут Column вешается на свойство класса-сущности. Значением параметра type выступает строка с именем типа Doctrine, например 'string', 'integer', 'text', 'boolean' или 'datetime'. Если параметр не указан, Doctrine пытается определить тип автоматически по типу PHP-свойства.

Синтаксис

#[Column(type: 'string', length: 255)]

Пример

Давайте создадим сущность Article с колонкой типа 'string':

<?php namespace AppEntity; use DoctrineORMMapping as ORM; #[ORMEntity] class Article { #[ORMId] #[ORMGeneratedValue] #[ORMColumn(type: 'integer')] private ?int $id = null; #[ORMColumn(type: 'string', length: 255)] private string $title; public function getTitle(): string { return $this->title; } public function setTitle(string $title): self { $this->title = $title; return $this; } } ?>

Теперь свойство title будет храниться в колонке типа VARCHAR(255). Результат создания таблицы:

CREATE TABLE article ( id INT AUTO_INCREMENT NOT NULL, title VARCHAR(255) NOT NULL, PRIMARY KEY(id) )

Пример

Давайте используем тип 'text' для длинного содержимого статьи:

<?php namespace AppEntity; use DoctrineORMMapping as ORM; #[ORMEntity] class Article { #[ORMId] #[ORMGeneratedValue] #[ORMColumn(type: 'integer')] private ?int $id = null; #[ORMColumn(type: 'text')] private string $content; public function getContent(): string { return $this->content; } public function setContent(string $content): self { $this->content = $content; return $this; } } ?>

Свойство content будет храниться в колонке типа TEXT. Результат создания таблицы:

CREATE TABLE article ( id INT AUTO_INCREMENT NOT NULL, content LONGTEXT NOT NULL, PRIMARY KEY(id) )

Пример

Давайте применим тип 'boolean' для флага публикации:

<?php namespace AppEntity; use DoctrineORMMapping as ORM; #[ORMEntity] class Article { #[ORMId] #[ORMGeneratedValue] #[ORMColumn(type: 'integer')] private ?int $id = null; #[ORMColumn(type: 'boolean')] private bool $published = false; public function isPublished(): bool { return $this->published; } public function setPublished(bool $published): self { $this->published = $published; return $this; } } ?>

Свойство published будет храниться в колонке типа TINYINT(1). Результат создания таблицы:

CREATE TABLE article ( id INT AUTO_INCREMENT NOT NULL, published TINYINT(1) NOT NULL, PRIMARY KEY(id) )

Пример

Давайте используем тип 'datetime' для даты создания:

<?php namespace AppEntity; use DoctrineORMMapping as ORM; #[ORMEntity] class Article { #[ORMId] #[ORMGeneratedValue] #[ORMColumn(type: 'integer')] private ?int $id = null; #[ORMColumn(type: 'datetime')] private DateTimeInterface $createdAt; public function getCreatedAt(): DateTimeInterface { return $this->createdAt; } public function setCreatedAt(DateTimeInterface $createdAt): self { $this->createdAt = $createdAt; return $this; } } ?>

Свойство createdAt будет храниться в колонке типа DATETIME. Результат создания таблицы:

CREATE TABLE article ( id INT AUTO_INCREMENT NOT NULL, created_at DATETIME NOT NULL, PRIMARY KEY(id) )

Смотрите также

  • параметр name,
    который задаёт имя колонки в базе данных
  • параметр nullable,
    который разрешает значение NULL в колонке
  • параметр length,
    который задаёт длину колонки для строковых типов
  • атрибут Column,
    который описывает колонку сущности в базе данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить