php - 实体上的主键 ID 缺失值
问题描述
我正在尝试返回我的实体,但是当我发出请求时出现此错误,并且我不知道我在处理这种关系时做错了什么 (1/2) OutOfBoundsException 缺少 \ApiBundle\Entity\ 上的主键 ID 的值类型
我的会话实体:
<?php
namespace Primepass\ApiBundle\Entity;
use Ramsey\Uuid\UuidInterface;
use Doctrine\ORM\Mapping as ORM;
/**
* Session
*
* @ORM\Table(name="session", uniqueConstraints={@ORM\UniqueConstraint(name="session_id_uindex", columns={"id"})})
* @ORM\Entity(repositoryClass="Primepass\ApiBundle\Repository\SessionRepository")
*/
class Session
{
/**
* @var UuidInterface
*
* @ORM\Id
* @ORM\Column(type="uuid", unique=true)
* @ORM\GeneratedValue(strategy="CUSTOM")
* @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator")
*/
private $id;
/**
* @var Theater
*
* @ORM\OneToOne(targetEntity="Theater")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="theater_id", referencedColumnName="id")
* })
*/
private $theater;
/**
* @var Movie
*
* @ORM\OneToOne(targetEntity="Movie")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="movie_id", referencedColumnName="id")
* })
*/
private $movie;
/**
* @var Type
*
* @ORM\OneToOne(targetEntity="Type")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="audio_type", referencedColumnName="type_name")
* })
*/
private $audioType;
/**
* @var Type
*
* @ORM\OneToOne(targetEntity="Type")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="screen_type", referencedColumnName="type_name")
* })
*/
private $screenType;
/**
* @var Type
*
* @ORM\OneToOne(targetEntity="Type")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="room_type", referencedColumnName="type_name")
* })
*/
private $roomType;
/**
* @var string
*
* @ORM\Column(name="room_name",type="string")
*/
private $roomName;
/**
* @var int
*
* @ORM\Column(name="price", type="integer", nullable=false)
*/
private $price;
/**
* @var \DateTime
*
* @ORM\Column(name="date", type="datetime", nullable=false)
*/
private $date;
/**
* @var \Time
*
* @ORM\Column(name="hour", type="time", nullable=false)
*/
private $hour;
/**
* @var bool
*
* @ORM\Column(name="is_active", type="boolean", nullable=false)
*/
private $isActive;
/**
* @var \DateTime
*
* @ORM\Column(name="created_at", type="datetime", nullable=false, options={"default"="2001-01-01 00:00:00"})
*/
private $createdAt = '2001-01-01 00:00:00';
/**
* @var \DateTime
*
* @ORM\Column(name="updated_at", type="datetime", nullable=false, options={"default"="2001-01-01 00:00:00"})
*/
private $updatedAt = '2001-01-01 00:00:00';
public function getId(): UuidInterface
{
return $this->id;
}
public function getTheater(): ?Theater
{
return $this->theater;
}
public function setTheater(?Theater $theater): self
{
$this->theater = $theater;
return $this;
}
public function getMovie(): ?Movie
{
return $this->movie;
}
public function setMovie(?Movie $movie): self
{
$this->movie = $movie;
return $this;
}
public function getAudioType(): ?Type
{
return $this->audioType;
}
public function setAudioType(?Type $audioType): self
{
$this->audioType = $audioType;
return $this;
}
public function getScreenType(): ?Type
{
return $this->screenType;
}
public function setScreenType(?Type $screenType): self
{
$this->screenType = $screenType;
return $this;
}
public function getRoomType(): ?Type
{
return $this->roomType;
}
public function setRoomType(?Type $roomType): self
{
$this->roomType = $roomType;
return $this;
}
public function getRoomName(): ?string
{
return $this->roomName;
}
public function setRoomName($roomName): self
{
$this->roomName = $roomName;
return $this;
}
public function getPrice(): ?int
{
return $this->price;
}
public function setPrice(?int $price): self
{
$this->price = $price;
return $this;
}
public function getDate(): ?\DateTimeInterface
{
return $this->date;
}
public function setDate(\DateTimeInterface $date): self
{
$this->date = $date;
return $this;
}
public function getHour(): ?\Time
{
return $this->hour;
}
public function setHour(\Time $hour): self
{
$this->hour = $hour;
return $this;
}
public function getIsActive(): bool
{
return $this->isActive;
}
public function setIsActive(bool $isActive): self
{
$this->isActive = $isActive;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
}
类型实体:
<?php
namespace Primepass\ApiBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Ramsey\Uuid\UuidInterface;
use Doctrine\ORM\Mapping as ORM;
/**
* Type
*
* @ORM\Table(name="type")
* @ORM\Entity(repositoryClass="Primepass\ApiBundle\Repository\TypeRepository")
*/
class Type
{
/**
* @var UuidInterface
*
* @ORM\Id
* @ORM\Column(type="uuid", unique=true)
* @ORM\GeneratedValue(strategy="CUSTOM")
* @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="type_name", type="string", length=100, nullable=false)
*/
private $typeName;
/**
* @var string
*
* @ORM\Column(name="type_info", type="string", length=100, nullable=false)
*/
private $typeInfo;
/**
* @var \DateTime
*
* @ORM\Column(name="created_at", type="datetime", nullable=false, options={"default"="2001-01-01 00:00:00"})
*/
private $createdAt = '2001-01-01 00:00:00';
/**
* @var \DateTime
*
* @ORM\Column(name="updated_at", type="datetime", nullable=false, options={"default"="2001-01-01 00:00:00"})
*/
private $updatedAt = '2001-01-01 00:00:00';
/**
* @ORM\ManyToMany(targetEntity="TicketRules", mappedBy="types")
* @ORM\JoinTable(name="ticket_rules_type")
*/
private $ticketRuleScreens;
public function __construct()
{
$this->ticketRuleScreens = new ArrayCollection();
}
public function getId(): UuidInterface
{
return $this->id;
}
public function getTypeName(): string
{
return $this->typeName;
}
public function setTypeName(string $typeName): self
{
$this->typeName = $typeName;
return $this;
}
public function getTypeInfo(): string
{
return $this->typeInfo;
}
public function setTypeInfo(string $typeInfo): self
{
$this->typeInfo = $typeInfo;
return $this;
}
public function getCreatedAt(): \DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getUpdatedAt(): \DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
public function getTicketRuleScreens()
{
return $this->ticketRuleScreens;
}
public function setTicketRuleScreens($ticketRuleScreens): self
{
$this->ticketRuleScreens = $ticketRuleScreens;
return $this;
}
}
我期望一个带有分页器的 json 返回,但是 Session 模型有问题
解决方案
推荐阅读
- java - Collectors.toMap 中合并函数的线程“主”java.lang.UnsupportedOperationException 中的异常
- python - group_concat 字符串被截断
- lotus-notes - Designer HELP 发布 9.0.1FP10 SHF315
- c# - Unity 防止为所有同名对象播放声音
- c# - 实体框架 6 在多任务上失败
- c++ - OpenGL:Mesa3D 离屏软件渲染性能问题
- matlab - Matlab函数参数包括h。我希望情节标题包含相同的 h。怎么做?
- graph - 用于查找图的根节点的 Cypher 查询
- scala - 在 Scala 中将数据帧转换为 Map 时出现编译器错误
- javascript - Angular 7 动画导致 webkit 浏览器上的 z-index 重叠问题