我有一個實體與我的產品,我有一個到另一個實體與每個產品的類型和價格的關係。 在我galery的看法,我想分別把所有與他們的種類和價格的產品,做這樣的事情:Symfony2中的特定查詢
{% 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。
閱讀[學說查詢生成器(HTTP://docs.doctrine-project .org/en/latest/reference/query-builder.html) –