@apfelboxが説明したように...現在、修正はありません。
一意のキーと組み合わせて OneToMany ソリューションを使用しました。
User.php
/**
* @ORM\OneToMany(targetEntity="TB\UserBundle\Entity\Settings", fetch="EXTRA_LAZY", mappedBy="user", cascade={"all"})
*/
protected $settings;
/**
* @return \Doctrine\Common\Collections\Collection
*/
public function getSettings()
{
return $this->settings;
}
と
Settings.php
/**
* @ORM\ManyToOne(targetEntity="TB\UserBundle\Entity\User", fetch="EXTRA_LAZY", inversedBy="settings")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
*/
protected $user;
また、Settings.php の一意性を確保するには、以下を含めます。
use Doctrine\ORM\Mapping\UniqueConstraint;
一意のインデックスを追加します
/**
* @ORM\Entity
* @ORM\Table(name="user_settings", uniqueConstraints={@UniqueConstraint(name="user", columns={"user_id"})})
*/
class Settings
したがって、ユーザー設定にアクセスしたいときは、これが必要です(その特定の瞬間にのみ1つのクエリを起動します)
$_settings = $user->getSettings()->current();
私は最もクリーンなソリューションだと思います。