Php DoctrineORM->;边界外异常->;缺少主键id的值
我正在使用Php DoctrineORM->;边界外异常->;缺少主键id的值,php,codeigniter,doctrine-orm,doctrine,Php,Codeigniter,Doctrine Orm,Doctrine,我正在使用条令ORM和编码点火器。错误看起来像这样 遇到未捕获的异常 类型:条令\Common\Proxy\Exception\OutOfBoundsException 消息:TestDoor上缺少主键id的值 文件名:>/home/qualesof/hotel.qualsoft.com/application/libraries/Doctrine/Common/Proxy/Exception/OutOfBoundsException.php 电话号码:40 班级测试室 <?php re
条令
ORM和编码点火器
。错误看起来像这样
遇到未捕获的异常
类型:条令\Common\Proxy\Exception\OutOfBoundsException
消息:TestDoor上缺少主键id的值
文件名:>/home/qualesof/hotel.qualsoft.com/application/libraries/Doctrine/Common/Proxy/Exception/OutOfBoundsException.php
电话号码:40
班级测试室
<?php
require_once(APPPATH . "models/Entities/TestDoor.php");
use Doctrine\ORM\Mapping as ORM;
/**
* TestRoom
*
* @ORM\Table(name="test_room", indexes={@ORM\Index(name="test_door_code", columns={"test_door_code"})})
* @ORM\Entity
*/
class TestRoom implements JsonSerializable
{
public function jsonSerialize()
{
return get_object_vars($this);
}
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=false)
*/
private $name;
/**
* @var \TestDoor
*
* @ORM\ManyToOne(targetEntity="TestDoor")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="test_door_code", referencedColumnName="code")
* })
*/
private $testDoorCode;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
*
* @return TestRoom
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set testDoorCode
*
* @param \TestDoor $testDoorCode
*
* @return TestRoom
*/
public function setTestDoorCode(\TestDoor $testDoorCode = null)
{
$this->testDoorCode = $testDoorCode;
return $this;
}
/**
* Get testDoorCode
*
* @return \TestDoor
*/
public function getTestDoorCode()
{
return $this->testDoorCode;
}
}
为什么要通过code
而不是其id
引用TestDoor?表使用代码外键。这不是我喜欢的。我的目的是使用代码外键你找到解决方法了吗?完全相同的问题。我试图将一个varchar(2)映射到一个country表,其中varchar(2)映射到一个“code”字段而不是ID字段。没有解决方案yetI找到了一个解决方案。“代码”字段必须是主键才能这样使用。它是这样工作的。为什么要通过code
而不是它的id
引用TestDoor?表使用代码外键。这不是我喜欢的。我的目的是使用代码外键你找到解决方法了吗?完全相同的问题。我试图将一个varchar(2)映射到一个country表,其中varchar(2)映射到一个“code”字段而不是ID字段。没有解决方案yetI找到了一个解决方案。“代码”字段必须是主键才能这样使用。它是这样工作的。
<?php
use Doctrine\ORM\Mapping as ORM;
/**
* TestDoor
*
* @ORM\Table(name="test_door", uniqueConstraints={@ORM\UniqueConstraint(name="code", columns={"code"})})
* @ORM\Entity
*/
class TestDoor implements JsonSerializable
{
public function jsonSerialize()
{
return get_object_vars($this);
}
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="code", type="string", length=3, nullable=false)
*/
private $code;
/**
* @var boolean
*
* @ORM\Column(name="all_included", type="boolean", nullable=false)
*/
private $allIncluded;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set code
*
* @param string $code
*
* @return TestDoor
*/
public function setCode($code)
{
$this->code = $code;
return $this;
}
/**
* Get code
*
* @return string
*/
public function getCode()
{
return $this->code;
}
/**
* Set allIncluded
*
* @param boolean $allIncluded
*
* @return TestDoor
*/
public function setAllIncluded($allIncluded)
{
$this->allIncluded = $allIncluded;
return $this;
}
/**
* Get allIncluded
*
* @return boolean
*/
public function getAllIncluded()
{
return $this->allIncluded;
}
}