2015-10-05 73 views
-2

我有一個實體與我的產品,我有一個到另一個實體與每個產品的類型和價格的關係。 在我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。

+0

閱讀[學說查詢生成器(HTTP://docs.doctrine-project .org/en/latest/reference/query-builder.html) –

回答

0

如果您有例如:

產品和某些類型的有關嘗試這樣做就像這樣:

$query = $repository->createQueryBuilder('Catalogo') 
    ->select("catalogo, unidades") 
    ->from("Catalogo", "catalogo") 
    ->leftJoin("catalogo.unidades", "unidades") 
    ->getQuery() 
+0

在第二行中,您將屬性,第三個實體的名稱和屬性,以及最後在第四行中的鏈接和屬性??? – Geronimo

+0

第二:實體的別名(映射數據庫對象的別名)第三:產品實體及其別名第四:連接類型及其別名 –

+0

你能檢查我修改了什麼,因爲它不起作用? – Geronimo