1

次の 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() はすべて同じ出力を返します。

4

0 に答える 0