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

Поле Ulid

Поле Ulid создаёт колонку для хранения уникальных идентификаторов в формате ULID. ULID - это 128-битный идентификатор, состоящий из 48-битной метки времени и 80 бит случайности. В отличие от UUID, ULID лексикографически сортируем, что удобно для баз данных. Первым параметром передаётся имя поля. Поле автоматически генерирует значение при создании сущности.

Синтаксис

#[ORM\Column(type: 'ulid')] private ?Ulid $fieldName = null;

Пример

Давайте создадим сущность с полем Ulid:

<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Uid\Ulid; #[ORM\Entity] class Article { #[ORM\Id] #[ORM\Column(type: 'ulid', unique: true)] private ?Ulid $id = null; #[ORM\Column(type: 'string', length: 255)] private string $title = ''; public function getId(): ?Ulid { return $this->id; } public function getTitle(): string { return $this->title; } public function setTitle(string $title): self { $this->title = $title; return $this; } } ?>

Пример

Давайте создадим и сохраним сущность через EntityManager:

<?php namespace App\Controller; use App\Entity\Article; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/create', name: 'article_create')] public function create(EntityManagerInterface $em): Response { $article = new Article(); $article->setTitle('hello'); $em->persist($article); $em->flush(); return new Response((string) $article->getId()); } } ?>

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

"01HZX9K2Y8V3Q4R5S6T7U8V9W0"

Пример

Давайте найдём сущность по ULID:

<?php namespace App\Controller; use App\Entity\Article; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Uid\Ulid; class ArticleController extends AbstractController { #[Route('/article/{id}', name: 'article_show')] public function show(string $id, EntityManagerInterface $em): Response { $article = $em->getRepository(Article::class) ->find(Ulid::fromString($id)); if (!$article) { return new Response('article not found', 404); } return new Response($article->getTitle()); } } ?>

Результат выполнения кода для адреса /article/01HZX9K2Y8V3Q4R5S6T7U8V9W0:

"hello"

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

  • поле Uuid,
    которое хранит UUID-идентификаторы
  • поле Guid,
    которое хранит GUID-идентификаторы
  • параметр unique,
    который задаёт уникальность поля
  • параметр nullable,
    который разрешает NULL-значения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить