Symfony2数组访问twig错误

时间:2013-09-27 08:12:41

标签: php arrays symfony twig

我不知道发生了什么,但这是我的困境:
当我想在树枝中访问嵌套数组时,我收到此错误

  

无法访问KprCentarZdravljaBundle中的整数变量(“10977”)上的属性(“路径”):部件:第12行的articleDefaultBlock.html.twig

现在这是我的树枝代码:

{% if flag == 0 or flag == 1 %}
    {% set width = 230 %}
    {% set height = 154 %}
{% elseif flag == 2 %}
    {% set width = 60 %}
    {% set height = 60 %}
{% endif %}

{% for artCats in articles %}
  {% for artCat in artCats %}
    {% set img_url = globalimagepath ~ "articles/" ~ artCat.path %}
    {% set cid = artCat.cid %}
    {% set catname = artCat.name %}
    {% set aPath = path('article_details', {'id': artCat.id, 'catname': catname|pathauto,  'title': artCat.title|pathauto}) %}
     <li>
        <article>
            {% if loop.first %}
            {% if flag == 0 or flag == 1 %}
              <h3><a href="{{ path('category_details', {'id': cid, 'name': catname|pathauto}) }}">{{ catname|teaser(28) }}</a></h3>
            {% endif %}
            {% if flag != 3 %}<a href="{{ aPath }}"><img src="{{ image('http://'~ app.request.getHttpHost() ~ asset(img_url)).zoomCrop(width,height).jpeg }}" alt="{{ artCat.title }}"></a>{% endif %}
                <h1><a href="{{ aPath }}">{{ artCat.title|teaser(79) }}</a></h1>
            {% else %}
                <h2><a href="{{ path('article_details', {'id': artCat.id, 'catname': artCat.name|pathauto,  'title': artCat.title|pathauto}) }}">{{ artCat.title|teaser(37) }}</a></h2>
            {% endif %}
            </article>
      </li>
  {% endfor %}
{% endfor %}

这是我对树枝中变量文章的调试:

array(4) {
  ["Zdravlje općenito"]=&gt;
  array(11) {
    [0]=&gt;
    array(5) {
      ["id"]=&gt;
      int(11659)
      ["title"]=&gt;
      string(36) "Brinete li o zdravlju svojih očiju?"
      ["path"]=&gt;
      string(18) "1330007101_516.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
    [1]=&gt;
    array(5) {
      ["id"]=&gt;
      int(14663)
      ["title"]=&gt;
      string(29) "Otkrijte uzročnike alergija!"
      ["path"]=&gt;
      string(18) "1380196476_342.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
    [2]=&gt;
    array(5) {
      ["id"]=&gt;
      int(14664)
      ["title"]=&gt;
      string(24) "Uzroci bolova u kukovima"
      ["path"]=&gt;
      string(18) "1380195386_853.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
    [3]=&gt;
    array(5) {
      ["id"]=&gt;
      int(14665)
      ["title"]=&gt;
      string(13) "Napadi panike"
      ["path"]=&gt;
      string(18) "1380195261_180.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
    [4]=&gt;
    array(5) {
      ["id"]=&gt;
      int(11170)
      ["title"]=&gt;
      string(28) "Čaj od ružmarina kao lijek"
      ["path"]=&gt;
      string(18) "1380116708_577.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
    [5]=&gt;
    array(5) {
      ["id"]=&gt;
      int(10970)
      ["title"]=&gt;
      string(35) "Začinite i produžite svoj život!"
      ["path"]=&gt;
      string(18) "1380031350_101.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
    [6]=&gt;
    array(5) {
      ["id"]=&gt;
      int(11171)
      ["title"]=&gt;
      string(32) "Meditacijom do punine življenja"
      ["path"]=&gt;
      string(18) "1380103969_112.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
    [7]=&gt;
    array(5) {
      ["id"]=&gt;
      int(10973)
      ["title"]=&gt;
      string(20) "Zašto volimo cimet?"
      ["path"]=&gt;
      string(18) "1379579290_899.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
    [8]=&gt;
    array(5) {
      ["id"]=&gt;
      int(10977)
      ["title"]=&gt;
      string(32) "Simptomi hormonalne neravnoteže"
      ["path"]=&gt;
      string(18) "1379507943_927.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
    [9]=&gt;
    array(5) {
      ["id"]=&gt;
      int(10978)
      ["title"]=&gt;
      string(46) "Čaj od đumbira - ukusni napitak koji liječi"
      ["path"]=&gt;
      string(18) "1379419241_320.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
    [10]=&gt;
    array(5) {
      ["id"]=&gt;
      int(10979)
      ["title"]=&gt;
      string(24) "Zašto volimo ružmarin?"
      ["path"]=&gt;
      string(18) "1379335723_831.jpg"
      ["cid"]=&gt;
      int(266)
      ["name"]=&gt;
      string(18) "Zdravlje općenito"
    }
  }
  ["Izgled i ljepota"]=&gt;
  array(3) {
    [0]=&gt;
    array(5) {
      ["id"]=&gt;
      int(14662)
      ["title"]=&gt;
      string(20) "Joga za mršavljenje"
      ["path"]=&gt;
      string(18) "1380198181_298.jpg"
      ["cid"]=&gt;
      int(268)
      ["name"]=&gt;
      string(16) "Izgled i ljepota"
    }
    [1]=&gt;
    array(5) {
      ["id"]=&gt;
      int(10971)
      ["title"]=&gt;
      string(32) "Najbolja prehrana za vašu kožu"
      ["path"]=&gt;
      string(18) "1379939148_517.jpg"
      ["cid"]=&gt;
      int(268)
      ["name"]=&gt;
      string(16) "Izgled i ljepota"
    }
    [2]=&gt;
    array(5) {
      ["id"]=&gt;
      int(10974)
      ["title"]=&gt;
      string(30) "Najčešći uzročnici rosacee"
      ["path"]=&gt;
      string(18) "1379579025_722.jpg"
      ["cid"]=&gt;
      int(268)
      ["name"]=&gt;
      string(16) "Izgled i ljepota"
    }
  }
  ["Seks i veze"]=&gt;
  array(1) {
    [0]=&gt;
    array(5) {
      ["id"]=&gt;
      int(10975)
      ["title"]=&gt;
      string(19) "10 mitova o orgazmu"
      ["path"]=&gt;
      string(18) "1379578683_758.jpg"
      ["cid"]=&gt;
      int(270)
      ["name"]=&gt;
      string(11) "Seks i veze"
    }
  }
  ["Sport i rekreacija"]=&gt;
  array(1) {
    [0]=&gt;
    array(5) {
      ["id"]=&gt;
      int(10976)
      ["title"]=&gt;
      string(41) "Što se događa s tijelom kada vježbate?"
      ["path"]=&gt;
      string(18) "1379577938_298.jpg"
      ["cid"]=&gt;
      int(271)
      ["name"]=&gt;
      string(18) "Sport i rekreacija"
    }
  }
}

由于某种原因,我无法访问嵌套数组中的任何变量...

2 个答案:

答案 0 :(得分:2)

  

无法访问整数变量的属性(“path”)   (“10977”)in   KprCentarZdravljaBundle:零件:第12行的articleDefaultBlock.html.twig

您是否仅使用数组中的第8个元素(ID为10977的那个)获得错误?迭代在到达该元素之前是否有效?

答案 1 :(得分:0)

这似乎失败了:{% set img_url = globalimagepath ~ "articles/" ~ artCat.path %}

{{ dump(artCat) }}。它似乎是一个整数而不是数组/对象。