我正在使用Symfony,需要與我的數據庫中名爲$voorraad
和$minimumvoorraad
的變量進行比較。當$voorraad
低於$minimumvoorraad
時,我需要查看產品。自從我使用Symfony以來,我們使用PHP語言。我已經嘗試了FindByVoorrad
和FindOneBy
聲明沒有成功,我只從我的小樹枝得到標題,但就是這樣。FindBy語句中的Symfony(php)比較
在此先感謝。
我正在使用Symfony,需要與我的數據庫中名爲$voorraad
和$minimumvoorraad
的變量進行比較。當$voorraad
低於$minimumvoorraad
時,我需要查看產品。自從我使用Symfony以來,我們使用PHP語言。我已經嘗試了FindByVoorrad
和FindOneBy
聲明沒有成功,我只從我的小樹枝得到標題,但就是這樣。FindBy語句中的Symfony(php)比較
在此先感謝。
鑑於你的實體由任何領域,其中包括「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>
非常感謝,起初我還是遇到了一些麻煩,因爲我認爲你在Query中使用的e必須是你的代碼中已經存在的東西,事實證明它可以是隨機的。再次,謝謝! – nolivier
Woops,我很抱歉 - 「e」是構建SQL查詢時分配給表的別名,我相信這是默認的MySQL語法。應該提到,但很高興你自己完成了! –
莫非你也許共享您嘗試過的代碼(包括SQL和PHP)? – cfnerd
對於「低於」比較,您需要一些自定義代碼。最好的解決方案可能是使用[定製版本庫](http://symfony.com/doc/current/doctrine/repository.html)和查詢生成器(類似[如此處所示])(https://stackoverflow.com/a/14089458)) – kero