簡體   English   中英

避免延遲加載 Doctrine Symfony2

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM