Sonata管理员是否使用自生成的实体ID?

时间:2016-09-16 14:06:45

标签: sonata-admin

Sonata管理员是否自行生成实体ID?我有以下实体使用Uuid库来生成自己的id但是当我尝试使用Sonata管理员创建一个新的组时,它会感到困惑并认为我正在编辑现有实体而不是创建一个新实体。

<?php declare(strict_types=1);

namespace App\Entity;

use App\Value\StartEndTime;
use App\Exception\GroupInactiveException;
use Ramsey\Uuid\Uuid;
use Assert\Assertion;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\ArrayCollection;

class Group
{
    /** @var string */
    private $id;

    /** @var string */
    private $title;

    /** @var string */
    private $description;

    /** @var User */
    private $admin;

    /** @var Collection */
    private $members;

    /** @var Collection */
    private $invites;

    /** @var StartEndTime */
    private $startEndTime;

    /** @var StartEndTime */
    private $eventStartEndTime;

    public function __construct()
    {
        $this->id = Uuid::uuid4()->toString();
        $this->members = new ArrayCollection();
        $this->invites = new ArrayCollection();
    }

    public function getId(): string
    {
        return $this->id;
    }

    public function getTitle()
    {
        return $this->title;
    }

    public function setTitle(string $title)
    {
        Assertion::notEmpty($title, 'Title is not specified');
        $this->title = $title;

        return $this;
    }

    public function getDescription()
    {
        return $this->description;
    }

    public function setDescription(string $description)
    {
        Assertion::notEmpty($description, 'Description is not specified');
        $this->description = $description;

        return $this;
    }

    public function getStartEndTime()
    {
        return $this->startEndTime;
    }

    public function setStartEndTime(StartEndTime $startEndTime)
    {
        $this->startEndTime = $startEndTime;

        return $this;
    }

    public function getEventStartEndTime()
    {
        return $this->eventStartEndTime;
    }

    public function setEventStartEndTime(StartEndTime $startEndTime)
    {
        $this->eventStartEndTime = $startEndTime;

        return $this;
    }
}

0 个答案:

没有答案