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

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

Параметр options атрибута Column принимает массив, в котором можно задать дополнительные настройки для столбца базы данных. Эти настройки передаются напрямую в драйвер Doctrine DBAL и позволяют управлять такими вещами, как комментарии к столбцу, значения по умолчанию на уровне БД, коллации и другими специфическими опциями.

Параметр не является обязательным. Если он не указан, используются стандартные настройки, определённые типом поля. Массив options особенно полезен, когда нужно задать поведение, которое нельзя выразить через другие параметры атрибута Column, например length или nullable.

Синтаксис

#[Column(type: type, options: ['key' => 'value'])]

Пример

Давайте создадим сущность Article с полем title и зададим для него комментарий к столбцу через параметр options:

<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; #[ORM\Entity] class Article { #[ORM\Column(type: 'string', length: 255, options: ['comment' => 'Article title'])] private string $title; public function getTitle(): string { return $this->title; } public function setTitle(string $title): self { $this->title = $title; return $this; } } ?>

В результате выполнения миграции столбец title будет создан с комментарием 'Article title' на уровне базы данных.

Пример

Давайте зададим значение по умолчанию на уровне базы данных для поля status:

<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; #[ORM\Entity] class Article { #[ORM\Column(type: 'string', length: 50, options: ['default' => 'draft'])] private string $status = 'draft'; public function getStatus(): string { return $this->status; } public function setStatus(string $status): self { $this->status = $status; return $this; } } ?>

Теперь при вставке записи без указания значения столбец status получит значение 'draft' на уровне СУБД.

Пример

Давайте передадим несколько настроек одновременно: коллацию и комментарий для поля code:

<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; #[ORM\Entity] class Article { #[ORM\Column( type: 'string', length: 10, options: [ 'collation' => 'utf8mb4_unicode_ci', 'comment' => 'Unique article code' ] )] private string $code; public function getCode(): string { return $this->code; } public function setCode(string $code): self { $this->code = $code; return $this; } } ?>

Результат выполнения кода при генерации SQL-запроса:

"CREATE TABLE article (code VARCHAR(10) COLLATE utf8mb4_unicode_ci COMMENT 'Unique article code')"

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

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