如果繼續計算在Symfony的數據?在Symfony中如何保存數據?
比如我有實體:
City:
- name (string)
- men (int)
- women (int)
- streets (Collection)
public function getMenAndWomenIn33rd()
{
$count = 0;
foreach ($this->getDistricts() as $district) {
if ($district == '33rd') $count++;
}
return $this->getMen() + $this->getWomen() + $count;
}
Streets:
- city_id (relation)
- name
- district
而且比如我想算的男性和女性的平均數量在街道某小區33和它傳遞給模板。
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$city = $em->getRepository('AppBundle:City')->findOneByName('New York');
return $this->render('city/index.html.twig', array('name' => $city))
}
模板:
{% block body %}
City: {{ city.name }}
//others data...
33rd: {{ city.getMenAndWomenIn33rd() }}
{% endblock %}
方法getMenAndWomenIn33rd()應在City entity
?也許在存儲庫?在存儲庫中應該對數據庫進行操作?也許在服務?我知道它不能在控制器上,因爲控制器應該只傳遞數據。
我知道 - 我可以在GROUP BY庫做到這一點,但我寧願只有一個查詢(findOneBy - 接下來我將其更改爲與加入的QueryBuilder)。
一旦您在控制器中進行計算,您可以將該值傳遞給Twig視圖,如果我正確理解您的情況,則不必將其存儲在數據庫中。對於簡單的計算,您也可以傳遞數據庫中的查詢值並直接在Twig中進行計算。 –
您可能想考慮自定義存儲庫方法。 – gview