[英]Avoid lazy loading Doctrine Symfony2
我的項目中有兩個實體:用戶和頭像。
用戶通過 OneToOne 關系擁有 Avatar。
Avatar 是一個具有文件對象和文件名的實體。 它使用@ORM\\HasLifecycleCallbacks 來保存文件或刪除它,如Symfony2 文檔中所述。
在我的控制器中,我想從當前用戶中刪除 Avatar 實體(我使用$user = $this->get('security.context')->getToken()->getUser()
),但我不能使用$user->getAvatar()
獲取頭像:
var_dump($user->getAvatar());
object(AppBundle\Entity\Avatar)
private 'id' => int 20
public 'file' => null
private 'fileName' => null
但是如果我嘗試訪問頭像的文件名,它會被返回:
$filename = $user->getAvatar()->getFileName();
var_dump($user->getAvatar());
object(AppBundle\Entity\Avatar)
private 'id' => int 20
public 'file' => null
private 'fileName' => string 'myfile.png'
如何獲取與我的用戶關聯的頭像?
如Doctrine 文檔中所述,您只需要指定要急切的獲取行為。
/**
* @OneToOne(targetEntity="User", fetch="EAGER")
* @JoinColumn(name="user_id", referencedColumnName="id")
*/
請參閱 YAML 或其他配置示例的文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.