Поле guid
Поле guid создаёт в базе данных колонку
типа GUID (глобально уникальный идентификатор).
Оно используется для хранения значений,
уникальных в пределах всей системы, а не только
одной таблицы. Первым параметром передаётся имя
поля, вторым - массив опций.
Синтаксис
#[ORM\Column(type: 'guid', options: [])]
Пример
Давайте создадим сущность Article с полем
guid:
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
class Article
{
#[ORM\Id]
#[ORM\Column(type: 'guid')]
private string $id;
#[ORM\Column(type: 'string', length: 255)]
private string $title;
public function getId(): string
{
return $this->id;
}
public function setId(string $id): void
{
$this->id = $id;
}
public function getTitle(): string
{
return $this->title;
}
public function setTitle(string $title): void
{
$this->title = $title;
}
}
?>
Пример
Давайте сохраним сущность с полем guid
через 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;
use Symfony\Component\Uid\Guid;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_create')]
public function create(EntityManagerInterface $em): Response
{
$article = new Article();
$article->setId(Guid::v4()->toRfc4122());
$article->setTitle('hello');
$em->persist($article);
$em->flush();
return new Response($article->getId());
}
}
?>
Результат выполнения кода:
"9d8f6a1c-3b4e-4f2a-8c7d-1e5f9a2b3c4d"