Sql Symfony2细枝打印值来自2个不相关表上的查询
我有两个实体:“请求”和“合作伙伴” 请求和合作伙伴之间存在1对1关系,因此请求表中有一个Partners_id字段 我想显示一个合作伙伴列表,但我需要从Requests表中的“price”字段中获取一个值 在我的控制器上,我有以下查询:Sql Symfony2细枝打印值来自2个不相关表上的查询,sql,symfony,twig,dql,Sql,Symfony,Twig,Dql,我有两个实体:“请求”和“合作伙伴” 请求和合作伙伴之间存在1对1关系,因此请求表中有一个Partners_id字段 我想显示一个合作伙伴列表,但我需要从Requests表中的“price”字段中获取一个值 在我的控制器上,我有以下查询: $listPartners = $em ->getRepository('OandPboBundle:Partners') ->createQueryBuilder('p') ->select('p') -&g
$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();
在我的小树枝档案里
{% for partners in listPartners %}
<tr>
<td>{{ partners.id }}</td>
<td>{{ partners.price }}</td>
</tr>
{% endfor %}
{
/**
*@ORM\OneToOne(targetEntity=“OandP\boBundle\Entity\Partners”,cascade={“persist”})
*@ORM\JoinColumn(nullable=false)
*/
私人合伙人
/**
* @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(name=“partners”)
*@ORM\Entity(repositoryClass=“OandP\boBundle\Entity\PartnersRepository”)
*/
班级伙伴
{
如果存在单向关系,则无法获得它。我建议创建一个细枝函数,通过
合作伙伴获取请求
对象,可能如下所示:
{% for partners in listPartners %}
{% set requests = requests_by_partners(partners) {# this is a custom twig function, you can create it by extending the Twig, http://symfony.com/doc/current/cookbook/templating/twig_extension.html #} %}
<tr>
<td>{{ partners.id }}</td>
<td>{{ requests.price }}</td>
</tr>
{% endfor %}
{%用于listPartners%}
{%set requests=requests_by_partners(partners){{#这是一个自定义细枝函数,您可以通过扩展细枝来创建它,http://symfony.com/doc/current/cookbook/templating/twig_extension.html #} %}
{{partners.id}
{{requests.price}}
{%endfor%}
或者将您的关系声明为双向关系,这允许您获得合作伙伴的请求:
{% for partners in listPartners %}
<tr>
<td>{{ partners.id }}</td>
<td>{{ partners.requests.price }}</td>
</tr>
{% endfor %}
{%用于listPartners%}
{{partners.id}
{{partners.requests.price}
{%endfor%}
在Partners实体中定义字段$requests
/**
* @ORM\OneToOne(targetEntity="OandP\boBundle\Entity\Requests", mappedBy="partners")
*/
private $requests;
在您的小树枝上,只需尝试:
{% for partners in listPartners %}
<tr>
<td>{{ partners.id }}</td>
<td>{{ partners.requests.price }}</td>
</tr>
{% endfor %}
{%用于listPartners%}
{{partners.id}
{{partners.requests.price}
{%endfor%}
我认为您需要在查询中的报价表中添加一种连接(可能是交叉连接
)。我们不知道您的实体是什么样子。当然,如果您需要有人帮助,您应该发布它们。。我已经添加了我的实体:)
{% for partners in listPartners %}
<tr>
<td>{{ partners.id }}</td>
<td>{{ partners.requests.price }}</td>
</tr>
{% endfor %}
/**
* @ORM\OneToOne(targetEntity="OandP\boBundle\Entity\Requests", mappedBy="partners")
*/
private $requests;
{% for partners in listPartners %}
<tr>
<td>{{ partners.id }}</td>
<td>{{ partners.requests.price }}</td>
</tr>
{% endfor %}