次の DQL 呼び出しを行いました。
"SELECT SUBSTRING(e.sDateStart, 1, 4) as year
FROM contrastBundle:Exhibition e
WHERE e.sDateStart < :dateStart
GROUP BY year
ORDER BY year DESC"
基本的に必要なものを次の形式で返します。
array(3) {
[0]=>
array(1) {
["year"]=>
string(4) "2007"
}
[1]=>
array(1) {
["year"]=>
string(4) "2006"
}
[2]=>
array(1) {
["year"]=>
string(4) "2005"
}
}
これは、それを扱うのを非常に面倒にします。
編集 :
{% for eachyear in years %}
<a {% if year == eachyear.year %}class="active"{% endif %} href="{{path('exhibitions', {'year' : eachyear.year })}}">{{ eachyear.year }}</a>
{% endfor %}
eachyear.year で文字列にアクセスできますが、これは見苦しい解決策です。
これに対する最良の解決策はどれだろうと思っていました。特に、呼び出しから取得した配列を処理して、基本的に年の配列になるようにしたいと考えています。pop_array() などは役に立たないようです。また、呼び出しの出力をハイドレートしようとしましたが、getArrayResult() と getScalarResult() はすべて同じ出力を返します。