【问题标题】:Query MySql in PHP with Symfony使用 Symfony 在 PHP 中查询 MySql
【发布时间】:2016-12-14 09:47:17
【问题描述】:


有什么区别

在应用程序 1 / 2 中:

$qb = $this->createQueryBuilder('tu');

                $transUnits = $qb->select('tu, te')
                    ->leftJoin('tu.translations', 'te')
                    ->andWhere($qb->expr()->in('tu.id', $ids))
                    ->andWhere($qb->expr()->in('te.locale', $locales))
                    ->orderBy(sprintf('tu.%s', $sortColumn), $order)
                    ->getQuery()
                    ->getArrayResult();

and

$qb = $this->createQueryBuilder('tu');

                $transUnits = $qb->select('tu, te')
                    ->leftJoin('AppBundle:Translation', 'te')
                    ->andWhere($qb->expr()->in('tu.id', $ids))
                    ->andWhere($qb->expr()->in('te.locale', $locales))
                    ->orderBy(sprintf('tu.%s', $sortColumn), $order)
                    ->getQuery()
                    ->getArrayResult();

使用完全相同的参数调用函数。

在第二种情况下,我将“tu.translations”替换为“AppBundle:Translation”,因为无法识别定义翻译的“翻译”:

<one-to-many field="translations" target-entity="TranslationBundle\Entity\Translation" mapped-by="transUnit">
            <cascade>
                <cascade-all/>
            </cascade>
</one-to-many>

在第一种情况下,结果是:array(13) { ... },这是正确的格式结果;在第二种情况下,格式错误的结果是:array(70) { ... }

【问题讨论】:

  • 在每个查询上调用-&gt;getDQL(在-&gt;getQuery()之后),你会看到。
  • 我添加注释。

标签: php mysql symfony


【解决方案1】:

我在实体类中添加:

/**
     * @var \Translation
     * @ORM\OneToMany(targetEntity="Translation", mappedBy="transUnit")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id", referencedColumnName="trans_unit_id")
     * })
     */
    protected $translations;

/**
     * @var \TransUnit
     *
     * @ORM\ManyToOne(targetEntity="TransUnit", inversedBy="translations")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="trans_unit_id", referencedColumnName="id")
     * })
     */
    protected $transUnit;

然后工作。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 2013-10-05
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    相关资源
    最近更新 更多