我有一个实体Article20000Information
,其中包含以下几个字段:id
,description
,manufacturer_id
,supplier_id
我有另一个实体Organisation
。它有一个公司(制造商和供应商)列表,每个公司都有一个id
。
我还有一个页面,用于呈现Article20000Information数据的列表。目前,它只是在表格中显示数据:
| id | Description | Manufacturer | Supplier | Price |
|----|-------------|--------------|----------|--------|
| 1 | thing1 | 2 | 5 | 34 |
| 2 | thing2 | 5 | 2 | 23 |
| 3 | thing3 | 3 | 4 | 25 |
我需要的是制造商和供应商列根据显示的ID显示name
表中的organisation
值。
最好的方法是什么?
答案 0 :(得分:1)
知道了!
我需要多个别名,我已经猜到了,但我还需要给它们AS
,以便它们出现不同的列名。这反过来让twig呈现标签。
<?php
namespace Regenerys\QMSBundle\Entity;
use Doctrine\ORM\EntityRepository;
class Article20000InformationRepository extends EntityRepository
{
public function findStuff()
{
return $this->getEntityManager()
->createQuery(
'SELECT
A.id,
A.articleNumber,
A.description,
B.name as manufacturer,
C.name as supplier
FROM
RegenerysQMSBundle:Article20000Information A
LEFT OUTER JOIN RegenerysQMSBundle:Organisation B WITH B.id = A.manufacturer
LEFT OUTER JOIN RegenerysQMSBundle:Organisation C WITH C.id = A.supplier '
)
->getResult();
}
}
感谢@Alexandru的DQL帮助。
答案 1 :(得分:0)
您需要根据g.colorsMap_["SeriesID"] = "#FFFFFF";
g.updateOptions({});
g.user_attrs_.colors[index] = "#FFFFFF"; // Where index is index number of the SeriesID
Dygraph.updateDeep(g.user_attrs_, g.user_attrs_);
条件加入这两个表。
id
答案 2 :(得分:0)
如果您使用的是教义,那么正确的方法是创建一个Repository
类,然后编写由@ K139提出的加入代码,但在DQL
中:
class Article20000InformationRepository extends EntityRepository
{
public function findAll()
{
return $this->getEntityManager()
->createQuery(
'SELECT A.id, A.Description, B.ManufacturName, B.supplierName FROM AppBundle:Article20000Information A
LEFT OUTER JOIN AppBundle:Organisation B ON B.id = A.id '
)
->getResult();
}
}
然后在您的控制器中,您将使用它:
$articles = $em->getRepository('AppBundle:Article20000Information')->findAll();