Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DoctrineORM->;边界外异常->;缺少主键id的值_Php_Codeigniter_Doctrine Orm_Doctrine - Fatal编程技术网

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;
    }
}