我有以下兩個代碼實體模型:
帳戶,代表用戶帳戶,並有一個外鍵教室。
<?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;
是一個空的(非空)對象。試驗了一下後,我試着執行之前添加以下命令:
$em->getRepository('Classroom')->findAll().
然後我執行的$em->find('Account', $id);
和教室對象中的帳戶對象正確返回。
猜測:
我認爲有什麼不對實體被加載並從數據庫緩存的方式,因爲如果我加載所有的教室對象(或與該帳戶我相關聯的一個)之前我做我的find()
,然後一切都很好。
由於我是PHP和Doctrine的初學者,我尋求更多的意見/幫助來解決這個問題。