Symfony2-实体关系和条令请求问题

Symfony2-实体关系和条令请求问题,symfony,doctrine-orm,Symfony,Doctrine Orm,我有一个实体报价,它与一个产品有一个oneToOne关系,我有一个用户,他希望获得他在其产品上获得的所有报价 我想访问在我的SQL请求中提供产品的用户 所以是这样的: $user = $this->getUser(); $listofofferusergot = $em->getRepository('blabla:Offer')->findBy(array('product.autor.id' => $user->getId())); (注:报价与产品有一对一的

我有一个实体报价,它与一个产品有一个oneToOne关系,我有一个用户,他希望获得他在其产品上获得的所有报价

我想访问在我的SQL请求中提供产品的用户

所以是这样的:

$user = $this->getUser();
$listofofferusergot = $em->getRepository('blabla:Offer')->findBy(array('product.autor.id' => $user->getId()));
(注:报价与产品有一对一的关系) (ps2:我写的东西不起作用)

所以问题是一般性的,我可以简单地访问一个子字段(比如我的例子中的id),还是必须执行
$em->createQuery()
之类的操作

提供课程:

<?php

namespace Nemi\TwigBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Offer
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Nemi\TwigBundle\Entity\OfferRepository")
 */
class Offer
{
     /**
     * @ORM\ManyToOne(targetEntity="Nemi\TwigBundle\Entity\Product")
     * @ORM\JoinColumn(nullable=false)
     */
     private $product;

     ...
}

您可以在报价中添加此方法:

public function findOffersByProductAuthor(User $user)
{
    return $this->createQueryBuilder('offer')
         ->join('offer.product', 'product')
         ->join('product.author', 'author')
         ->where('author = :user')
         ->setParameter('user', $user)
         ->getQuery()
         ->getResults();
}
然后,致电:

$em->getRepository('blabla:Offer')-> findOffersByProductAuthor($this->getUser());

我可以看看你的实体代码吗?我会把函数命名为“findOffersByProductAuthor”,因为这个函数也有userok thx,它正在工作!但是,仅仅使用findBy()是没有办法做到这一点的?findBy只是一个快捷方式,您可以过滤正在请求的实体的属性,但不能使用连接,这在本例中是必需的。