セットアップ:ドクトリン2 OneToOneエンティティマッピングは、空のエンティティを返す
I次のコード2つのエンティティのモデルがあります:
アカウント、ユーザーアカウントを表現し、教室への外部キーを持っています。
<?php
namespace models;
/**
* @Entity
*/
class Account
{
/**
* @Id @Column(type="integer")
* @GeneratedValue(strategy="AUTO")
*/
public $id;
/**
* @OneToOne(targetEntity="Classroom")
*/
public $classroom;
}
学生にenroledれる教室を表し教室
<?php
namespace models;
/**
* @Entity
*/
class Classroom
{
/**
* @Id @Column(type="integer")
* @GeneratedValue(strategy="AUTO")
*/
public $id;
/**
* @Column(type="string")
*/
public $name;
}
問題:私は$account = $em->find('Account',$id);
を行うと
は私が正しく、データベースから戻ってアカウントを取得するが、 $account->classroom;
は、空の(nullでない)オブジェクトです。私は、実行する前に、次のコマンドを追加してみました少し試した後:
$em->getRepository('Classroom')->findAll().
をそれから私は$em->find('Account', $id);
を実行し、アカウントオブジェクトの内部教室オブジェクトが正しく返さ。
投機:
私はすべての教室のオブジェクトをロードする場合(または1つは、私のアカウントに関連付けられている)ので、エンティティがロードされ、データベースからキャッシュされる方法に問題があることを前提とする前に、私は私のfind()
をして、すべての問題はありません。
私はPHPとDoctrineの初心者ですから、私はその問題を解決するためにさらなる意見や助けを求めています。 Doctrine Architecture Documentationから