Symfony2-实体关系和条令请求问题
我有一个实体报价,它与一个产品有一个oneToOne关系,我有一个用户,他希望获得他在其产品上获得的所有报价 我想访问在我的SQL请求中提供产品的用户 所以是这样的:Symfony2-实体关系和条令请求问题,symfony,doctrine-orm,Symfony,Doctrine Orm,我有一个实体报价,它与一个产品有一个oneToOne关系,我有一个用户,他希望获得他在其产品上获得的所有报价 我想访问在我的SQL请求中提供产品的用户 所以是这样的: $user = $this->getUser(); $listofofferusergot = $em->getRepository('blabla:Offer')->findBy(array('product.autor.id' => $user->getId())); (注:报价与产品有一对一的
$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只是一个快捷方式,您可以过滤正在请求的实体的属性,但不能使用连接,这在本例中是必需的。