我有一个实体与我的产品,我有一个到多个的关系到另一个实体与每个产品的类型和价格。 在我的观点中,我想分别带来所有类型和价格的产品,做这样的事情:
{% for product in products%}
<h2>{{ product.name }}</h2>
<p>Description: {{ product.description }}</p>
<table>
<tr>
{% for type in types %}
<td>{{ type.type }}</td>
{% endfor %}
</tr>
<tr>
{% for type in types %}
<td>{{ type.price }}</td>
{% endfor %}
</tr>
</table>
{% endfor %}
我认为我只需要进行一次查询,在那里我找到所有产品的价格和类型。但我不知道如何。
我有这个:
Catalogo.php
Class Catalogo {
/**
* @var string
*
* @ORM\Column(name="articulo", type="string", length=70, unique = true)
*/
private $articulo;
/**
* @ORM\OneToMany(targetEntity="Unidades", mappedBy="catalogo")
*/
protected $unidades;
Medidas.php
Class Medidas{
/**
* @var float
*
* @ORM\Column(name="medida", type="float")
*/
private $medida;
/**
* @var float
*
* @ORM\Column(name="precio", type="float")
*/
private $precio;
/**
* @ORM\ManyToOne(targetEntity="Catalogo", inversedBy="unidades", cascade={"persist"})
* @ORM\JoinColumn(name="catalogo_id", referencedColumnName="id")
*/
protected $catalogo;
我这样做,但它不起作用:
public function findByArticuloYPrecios()
{
$em = $this->getEntityManager();
$repository = $em->getRepository('ProyectoAdminBundle:Catalogo');
$query = $repository->createQueryBuilder('Catalogo')
->select("Catalogo, Unidades")
->from("Catalogo", "catalogo")
->leftJoin("catalogo.unidades", "medida")
->getQuery();
try
{
return $query->getResult();
}
catch (\Doctrine\ORM\NoResultException $e) {
return null;
}
}
该函数返回null。
答案 0 :(得分:0)
如果您有例如:
产品和某些类型的关系尝试这样做:
$query = $repository->createQueryBuilder('Catalogo')
->select("catalogo, unidades")
->from("Catalogo", "catalogo")
->leftJoin("catalogo.unidades", "unidades")
->getQuery()