与学说2一对一关联时未找到索引

时间:2013-02-27 17:23:27

标签: symfony doctrine-orm

我收到此错误:

Notice: Undefined index: userTrack in C:\Program Files (x86)\Zend\Apache2\htdocs
\app\vendor\doctrine\orm\lib\Doctrine\ORM\Internal\Hydration\ObjectHydrator.php on line 110

File.php:

/**
 * @ORM\OneToOne(targetEntity="JJ\MainBundle\Entity\UserTrack", mappedBy="file", fetch="EAGER")
 * @JMS\Expose
 */
protected $user_track;

UserTrack.php:

/**
 * @ORM\OneToOne(targetEntity="JJ\MainBundle\Entity\File", inversedBy="user_track", fetch="EAGER")
 */
protected $file;

我可以很好地生成entites。 我可以更新我的架构。 是什么给了什么?

编辑:

public function findRandomByUser(User $user)
{
    $pointer = rand(0, $user->getFiles()->count() - 1);
    $query = $this->getEntityManager()->createQuery("
            SELECT f
            FROM MainBundle:File f
            WHERE f.user = :user
        ")
        ->setMaxResults(1)
        ->setFirstResult($pointer)
        ->setParameters(array(
            'user' => $user->getId()
        ));
    return $query->getSingleResult();
}

1 个答案:

答案 0 :(得分:3)

请仅使用ORM作为独立的doctrine:validate-schema命令(orm:validate-schema)验证您的架构。

UnitOfWork和内部的问题通常是由于无效的映射,拼写错误以及ORM在运行时未验证的错误,因为验证步骤的性能影响。