2017-05-22 17 views
0

我正在使用Symfony,需要與我的數據庫中名爲$voorraad$minimumvoorraad的變量進行比較。當$voorraad低於$minimumvoorraad時,我需要查看產品。自從我使用Symfony以來,我們使用PHP語言。我已經嘗試了FindByVoorradFindOneBy聲明沒有成功,我只從我的小樹枝得到標題,但就是這樣。FindBy語句中的Symfony(php)比較

在此先感謝。

+0

莫非你也許共享您嘗試過的代碼(包括SQL和PHP)? – cfnerd

+0

對於「低於」比較,您需要一些自定義代碼。最好的解決方案可能是使用[定製版本庫](http://symfony.com/doc/current/doctrine/repository.html)和查詢生成器(類似[如此處所示])(https://stackoverflow.com/a/14089458)) – kero

回答

1

鑑於你的實體由任何領域,其中包括「voorraad」和「minimumvoorraad」,你應該能夠通過

$em = $this->getDoctrine()->getManager(); 
$query = $em->createQuery(
    'SELECT e 
    FROM AppBundle:Entity e 
    WHERE e.voorraad < e.minimumvoorraad' 
); 

$products = $query->getResult(); 

編輯,讓您的數據庫表的內容:Ë在查詢內聯定義的SQL典型別名。

然後像往常一樣對待您的$ products變量,您可以在其中使用所有getter和setter。

你的產品呈現和傳遞給樹枝視圖後

return $this->render('view.html.twig', array(
    'products' => $products 
)); 

,那麼你可以繼續打印產品,例如,在一個表中的嫩枝視圖中:

<table> 
    {% for product in products %} 
     <tr> 
      <td>{{ product.id }}</td> 
      <td>{{ product.voorraad }}</td> 
      <td>{{ product.minimumvoorraad }}</td> 
     </tr> 
    {% endfor %} 
</table> 
+0

非常感謝,起初我還是遇到了一些麻煩,因爲我認爲你在Query中使用的e必須是你的代碼中已經存在的東西,事實證明它可以是隨機的。再次,謝謝! – nolivier

+0

Woops,我很抱歉 - 「e」是構建SQL查詢時分配給表的別名,我相信這是默認的MySQL語法。應該提到,但很高興你自己完成了! –