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

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

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

Синтаксис

#[Column(name: 'column_name')]

Пример

Давайте создадим сущность с полем title, которое в базе данных будет храниться в столбце 'article_title':

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

Теперь при работе с сущностью мы используем свойство title, а в базе данных значение сохраняется в столбец 'article_title'.

Пример

Давайте сохраним сущность и убедимся, что значение записывается в нужный столбец:

<?php namespace AppController; use AppEntityArticle; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class ArticleController extends AbstractController { public function create(EntityManagerInterface $em): Response { $article = new Article(); $article->setTitle('hello'); $em->persist($article); $em->flush(); return new Response('saved'); } } ?>

Результат выполнения кода:

"saved"

В таблице articles значение 'hello' будет записано в столбец article_title.

Пример

Давайте используем параметр name вместе с параметром type для текстового поля:

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

Теперь свойство content хранится в столбце article_content с типом text.

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

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