教义一对一关系不会从反转的一方加载



我有一个用户。一些用户使用消息传递系统。这些用户(但不是所有用户)都有messageUserSettings。我想在这些实体之间创建一个"OneToOne"关系。

这就是我所拥有的(编辑下来):

MessageUserSettings.php

<?php
use DoctrineORMMapping as ORM;
/**
 * MessageUserSettings
 * @ORMEntity
 * @ORMTable(name="message_user_settings")
 */
class MessageUserSettings {
    /**
     * @var User
     *
     * @ORMOneToOne(targetEntity="User", inversedBy="messageSettings")
     */
    protected $user;
    /**
     * Get user
     * @return User
     */
    public function getUser()
    {
        return $this->user;
    }
}

User.php

<?php
use DoctrineORMMapping as ORM;
/**
 * Users
 *
 * @ORMEntity
 * @ORMTable(
 *      name="users",
 *      uniqueConstraints={
 *          @ORMUniqueConstraint(name="users_username_unique", columns={"username"}),
 *          @ORMUniqueConstraint(name="users_email_unique", columns={"email"})
 *      }
 * )
 */
class User {
    /**
     * @ORMOneToOne(targetEntity="MessageUserSettings", mappedBy="user")
     **/
    protected $messageSettings;
    /**
     * @return MessageUserSettings
     */
    public function getMessageSettings()
    {
        return $this->messageSettings;
    }
}

我可以按预期看到表中的外键和字段。

TABLE_NAME             COLUMN_NAME  CONSTRAINT_NAME      REFERENCED_TABLE_NAME  REFERENCED_COLUMN_NAME
message_user_settings  user_id      FK_4C6502BDA76ED395  users                  id

我可以从MessageUserSettings转到User,但不能反过来。我错过了什么?

对于一对一,双向:

class MessageUserSettings 
{
    /**
     * @var User
     *
     * @ORMOneToOne(targetEntity="User", inversedBy="messageSettings")
     * @ORMJoinColumn(name="user_id", referencedColumnName="id")
     */
     protected $user;
     /***/
}

最新更新