我有2个实体:“请求”和“合作伙伴”请求和合作伙伴之间存在1to1关系,因此请求表中有一个partners_id字段我想显示合作伙伴列表,但我需要从“价格”中获取值请求表中的字段
在我的控制器上,我有这个查询:
$listPartners = $em
->getRepository('OandPboBundle:Partners')
->createQueryBuilder('p')
->select('p')
->leftJoin('OandPboBundle:Requests', 'r', 'WITH', 'r.partners = p.id')
->where('p.date LIKE :date AND p.active = :active')
->setParameter('date', '%'.$year.'-'.$month.'%')
->setParameter('active', 1)
->orderBy('p.date', 'DESC')
->addOrderBy('p.id', 'DESC')
->getQuery()
->getResult();
在我的TWIG文件中,我有
{% for partners in listPartners %}
<tr>
<td>{{ partners.id }}</td>
<td>{{ partners.price }}</td>
</tr>
{% endfor %}
当然有一个错误,因为他们说“合作伙伴”中没有“价格”字段(当然我想从“请求”中获取它)
有没有办法做到这一点?
编辑我发布我的2个实体实体“请求”
class Requests
{/ ** * @ORM \ OneToOne(targetEntity =“OandP \ boBundle \ Entity \ Partners”,cascade = {“persist”})* @ORM \ JoinColumn(nullable = false)* / private $ partners;
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="price", type="integer")
*/
private $price;
我的实体“合作伙伴”
/**
合作伙伴 * @ORM \ Table(名称=“合作伙伴”)* @ORM \ Entity(repositoryClass =“OandP \ boBundle \ Entity \ PartnersRepository”)* / class Partners {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="raisonsociale", type="string", length=255)
*/
private $raisonsociale;
/**
* @var string
*
* @ORM\Column(name="firstname", type="string", length=255)
*/
private $firstname;
/**
* @var string
*
* @ORM\Column(name="lastname", type="string", length=255)
*/
private $lastname;
2 回答
如果存在单向关系,则无法获得它 . 我可以建议创建一个由
Partners
获取Requests
对象的Twig函数,可能是这样的:或者将您的关系声明为双向关系,这样您就可以获得合作伙伴的请求:
在合作伙伴实体中定义字段$请求
在您的Twig中,只需尝试: