Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Symfony2细枝打印值来自2个不相关表上的查询_Sql_Symfony_Twig_Dql - Fatal编程技术网

Sql Symfony2细枝打印值来自2个不相关表上的查询

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

我有两个实体:“请求”和“合作伙伴” 请求和合作伙伴之间存在1对1关系,因此请求表中有一个Partners_id字段 我想显示一个合作伙伴列表,但我需要从Requests表中的“price”字段中获取一个值

在我的控制器上,我有以下查询:

$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 %}