Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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
Doctrine orm 一对一关系的映射无效_Doctrine Orm_Doctrine_Symfony 2.8 - Fatal编程技术网

Doctrine orm 一对一关系的映射无效

Doctrine orm 一对一关系的映射无效,doctrine-orm,doctrine,symfony-2.8,Doctrine Orm,Doctrine,Symfony 2.8,我试图在两个实体之间创建一个实体,但得到的是以下错误: # app/console doctrine:schema:validate --env=dev_local [Mapping] FAIL - The entity-class 'Belka\AuthBundle\Entity\Globaltoken' mapping is invalid: * The association Belka\AuthBundle\Entity\Globaltoken#user refers to the

我试图在两个
实体之间创建一个
实体,但得到的是以下错误:

# app/console doctrine:schema:validate --env=dev_local

[Mapping]  FAIL - The entity-class 'Belka\AuthBundle\Entity\Globaltoken' mapping is invalid:
* The association Belka\AuthBundle\Entity\Globaltoken#user refers to the inverse side field Belka\AuthBundle\Entity\User#globaltoken which does not exist.

[Mapping]  FAIL - The entity-class 'Belka\AuthBundle\Entity\User' mapping is invalid:
* The mappings Belka\AuthBundle\Entity\User#globalToken and Belka\AuthBundle\Entity\Globaltoken#user are inconsistent with each other.
这些是我的实体:

用户实体
/**
*@ORM\Entity
*@ORM\Table(name=“app\u auth.”“User”“,schema=“app\u auth”)
*@ORM\Entity(repositoryClass=“UserRepository”)
*@uniquentity(“用户名”,组={“严格”})
*@uniquentity(“email”,groups={“strict”})
*@Assert\GroupSequence({“User”,“strict”})
*/
类用户实现EncoderAwareInterface
{
/**
*@ORM\Id
*@ORM\Column(type=“string”)
*@Assert\NotBlank(message=“user.username.not_blank”)
*@ORM\GeneratedValue(strategy=“NONE”)
*@Serializer\Groups({“default”})
*/
私有$username;
/**
*@ORM\Id
*@ORM\Column(type=“string”)
*@Assert\NotBlank(message=“user.email.not_blank”)
*@Assert\Email(message=“user.Email.not\u valid”)
*@Serializer\Groups({“default”})
*/
私人电子邮件;
/**
*@ORM\Column(type=“string”,nullable=true)
*@Serializer\Groups(“个人”)
*/
私人$password;
/**
*@ORM\Column(type=“string”)
*@Serializer\Groups({“default”})
*/
私人$name;
/**
*@ORM\Column(type=“string”)
*@Serializer\Groups({“default”})
*/
私人姓氏;
/**
*@ORM\Column(type=“string”,长度=5)
*@Serializer\Groups({“default”})
*/
私人$lang;
/**
*@ORM\Column(type=“boolean”)
*@Serializer\Groups({“strict_adm”})
*/
private$deleted=false;
/**
*@ORM\OneToOne(targetEntity=“Globaltoken”,mappedBy=“user”,cascade={“persist”})
*@Serializer\Groups({“strict”})
*/
私人$globalToken;
}
环球托肯实体
/**
*@ORM\Entity
*@ORM\Table(name=“app\u auth.”“Globaltoken”“,schema=“app\u auth”)
*@ORM\Entity(repositoryClass=“GlobaltokenRepository”)
*@uniquentity(“token”,groups={“strict”})
*@uniquentity(“最后一次使用”,组={“严格”})
*@Assert\GroupSequence({“Globaltoken”、“default”、“strict”})
*@ORM\HasLifecycleCallbacks()
*/
环球旅行社
{
//10分钟,以秒为单位
常数VALIDITYINTERVAL=600;
/**
*@ORM\Id
*@ORM\Column(type=“string”)
*@ORM\GeneratedValue(strategy=“NONE”)
*@Serializer\Groups({“strict”})
*/
私人$token;
/**
*@ORM\OneToOne(targetEntity=“User”,inversedBy=“globaltoken”)
*@ORM\JoinColumns({
*@ORM\JoinColumn(name=“owned\u by\u username”,referencedColumnName=“username”),
*@ORM\JoinColumn(name=“由电子邮件拥有”,referencedColumnName=“电子邮件”)
* })
*@Serializer\Groups({“strict”})
*/
私人用户;
/**
*@ORM\Column(type=“datetime”)
*@Assert\NotBlank()
*@Serializer\Groups({“strict”})
*/
私人$最后使用;
/**
*@Serializer\Groups({“default”})
*/
私有美元到期;
}

你认为可能是什么?明白了。大写打字错误是一切的责任:

User::globalToken
不是
inversedBy=“globalToken”
所期望的<代码>用户::globaltoken


我陷入了IT开发中最典型的陷阱之一,我认为这会让你分心。不过,我对PHPStorm对Symfony注释的支持感到非常失望。

明白了。大写打字错误是一切的责任:

User::globalToken
不是
inversedBy=“globalToken”
所期望的<代码>用户::globaltoken

我陷入了IT开发中最典型的陷阱之一,我认为这会让你分心。不过,我对PHPStorm对Symfony注释的支持感到非常失望

/**
 * @ORM\Entity
 * @ORM\Table(name="app_auth.""User""", schema="app_auth")
 * @ORM\Entity(repositoryClass="UserRepository")
 * @UniqueEntity("username", groups={"strict"})
 * @UniqueEntity("email", groups={"strict"})
 * @Assert\GroupSequence({"User", "strict"})
 */
class User implements EncoderAwareInterface
{
    /**
     * @ORM\Id
     * @ORM\Column(type="string")
     * @Assert\NotBlank(message = "user.username.not_blank")
     * @ORM\GeneratedValue(strategy="NONE")
     * @Serializer\Groups({"default"})
     */
    private $username;

    /**
     * @ORM\Id
     * @ORM\Column(type="string")
     * @Assert\NotBlank(message = "user.email.not_blank")
     * @Assert\Email(message = "user.email.not_valid")
     * @Serializer\Groups({"default"})
     */
    private $email;

    /**
     * @ORM\Column(type="string", nullable=true)
     * @Serializer\Groups("personal")
     */
    private $password;

    /**
     * @ORM\Column(type="string")
     * @Serializer\Groups({"default"})
     */
    private $name;

    /**
     * @ORM\Column(type="string")
     * @Serializer\Groups({"default"})
     */
    private $surname;

    /**
     * @ORM\Column(type="string", length=5)
     * @Serializer\Groups({"default"})
     */
    private $lang;

    /**
     * @ORM\Column(type="boolean")
     * @Serializer\Groups({"strict_adm"})
     */
    private $deleted = false;

    /**
     * @ORM\OneToOne(targetEntity="Globaltoken", mappedBy="user", cascade={"persist"})
     * @Serializer\Groups({"strict"})
     */
    private $globalToken;

    <removed methods>
    }
/**
 * @ORM\Entity
 * @ORM\Table(name="app_auth.""Globaltoken""", schema="app_auth")
 * @ORM\Entity(repositoryClass="GlobaltokenRepository")
 * @UniqueEntity("token", groups={"strict"})
 * @UniqueEntity("last_use", groups={"strict"})
 * @Assert\GroupSequence({"Globaltoken", "default", "strict"})
 * @ORM\HasLifecycleCallbacks()
 */
class Globaltoken
{
    //10 minutes, expressed in seconds
    const VALIDITYINTERVAL = 600;

    /**
     * @ORM\Id
     * @ORM\Column(type="string")
     * @ORM\GeneratedValue(strategy="NONE")
     * @Serializer\Groups({"strict"})
     */
    private $token;

    /**
     * @ORM\OneToOne(targetEntity="User", inversedBy="globaltoken")
     * @ORM\JoinColumns({
     *       @ORM\JoinColumn(name="owned_by_username", referencedColumnName="username"),
     *       @ORM\JoinColumn(name="owned_by_email", referencedColumnName="email")
     * })
     * @Serializer\Groups({"strict"})
     */
    private $user;

    /**
     * @ORM\Column(type="datetime")
     * @Assert\NotBlank()
     * @Serializer\Groups({"strict"})
     */
    private $last_use;

    /**
     * @Serializer\Groups({"default"})
     */
    private $expiring;

    <removed methods>
    }