[英]Doctrine OneToOne relationship doesn't load from inversed side
I have a user. 我有一个用户。 Some users use a messaging system.
一些用户使用消息传递系统。 Those users (but not all) have messageUserSettings.
这些用户(但不是全部)具有messageUserSettings。 I want to create a "OneToOne" relationship between these entities.
我想在这些实体之间创建一个“ OneToOne”关系。
This is what I have (edited down): 这是我(编辑后)的内容:
MessageUserSettings.php MessageUserSettings.php
<?php
use Doctrine\ORM\Mapping as ORM;
/**
* MessageUserSettings
* @ORM\Entity
* @ORM\Table(name="message_user_settings")
*/
class MessageUserSettings {
/**
* @var User
*
* @ORM\OneToOne(targetEntity="User", inversedBy="messageSettings")
*/
protected $user;
/**
* Get user
* @return User
*/
public function getUser()
{
return $this->user;
}
}
User.php user.php的
<?php
use Doctrine\ORM\Mapping as ORM;
/**
* Users
*
* @ORM\Entity
* @ORM\Table(
* name="users",
* uniqueConstraints={
* @ORM\UniqueConstraint(name="users_username_unique", columns={"username"}),
* @ORM\UniqueConstraint(name="users_email_unique", columns={"email"})
* }
* )
*/
class User {
/**
* @ORM\OneToOne(targetEntity="MessageUserSettings", mappedBy="user")
**/
protected $messageSettings;
/**
* @return MessageUserSettings
*/
public function getMessageSettings()
{
return $this->messageSettings;
}
}
I can see the foreign key and fields in the table as expected. 我可以按预期在表中看到外键和字段。
TABLE_NAME COLUMN_NAME CONSTRAINT_NAME REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
message_user_settings user_id FK_4C6502BDA76ED395 users id
I can go from MessageUserSettings
to User
but not the other way around. 我可以从
MessageUserSettings
转到User
但不能MessageUserSettings
。 What have I missed? 我错过了什么?
For a One-To-One, Bidirectional: 对于一对一双向:
class MessageUserSettings
{
/**
* @var User
*
* @ORM\OneToOne(targetEntity="User", inversedBy="messageSettings")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $user;
/***/
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.