php - 避免延迟加载 Doctrine Symfony2

标签 php symfony doctrine-orm doctrine lazy-loading

我的项目中有两个实体:用户和头像。

用户拥有具有一对一关系的 Avatar。

Avatar 是一个具有文件对象和文件名的实体。它使用 @ORM\HasLifecycleCallbacks 来保存文件或将其删除,如 Symfony2 documentation 中所述。 .

在我的 Controller 中,我想从当前用户中删除 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 docs 中所述,您只需指定要执行的获取行为即可。

/**
 * @OneToOne(targetEntity="User", fetch="EAGER")
 * @JoinColumn(name="user_id", referencedColumnName="id")
 */

请参阅 YAML 或其他配置示例的文档。

关于php - 避免延迟加载 Doctrine Symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31763867/

相关文章:

php - 学说 2 : Hydrate key-value array

php - 通过 php exec() 运行 mysqldump,管道到 gzip,返回 mysqldump stderr

php - 在 codeigniter 中单击 ajax 上的标签 a 时无法加载 Controller 功能

javascript - Symfony2 丑化 CSS 和 JS

php - 如何根据 Symfony 4 中的 "dev/prod"环境允许/拒绝路由?

symfony - 如何用学说2管理Mysql YEAR类型

php - 对 SOLR 的第一次查询比以下查询花费的时间长 30 倍

php - 无法在 PHP 文件中包含/执行 CGI 文件

php - Doctrine ORM 对象类型列未序列化

php - 跨数据库连接学说