Symfony2-Twig-访问stdclass对象数组

时间:2015-12-11 15:12:19

标签: symfony twig

可能有人可以解释我的错误。

我从riak bucket获得响应,我在动作控制器中准备并在树枝中呈现响应。 但我不能在树枝上循环回复响应。

当我在树枝上这样做时:

{%% for callback in callbacks %}
 {{ dump(callback) }}
 {% endfor %}

我明白了:

Doc {#410 ▼   
  #data: {#422 ▼
    +"psStatus_i": 0
    +"psUrl_s": ""
    +"clickId_s": "1_3_4_f1a9bcf2faaa2ef67a39916ba06cbbb0"
    +"id_s": "565f04da60030fa3048b4572"   
  }   
#_yz_id:1*CallBackDataIn_all*all*1_3_4_f1a9bcf2faaa2ef67a39916ba06cbbb0*24"   
}

但是当我想明确一个字段时:

  

{{callback.id_s}}

我得到了:

  

对象“Basho \ Riak \ Search \ Doc”的方法“id_s”不存在

我尝试转换为数组bvt然后我得到数组到字符串异常。

任何想法,我做错了什么。

编辑: 这是用php中的var_dump()输出的:

object(Basho\Riak\Search\Doc)[410]   protected 'data' => 
    object(stdClass)[422]
      public 'psStatus_i' => int 0
      public 'psUrl_s' => string '' (length=0)
      public 'clickId_s' => string '1_3_4_f1a9bcf2faaa2ef67a39916ba06cbbb0' (length=38)
      public 'id_s' => string '565f04da60030fa3048b4572' (length=24)   
protected '_yz_id' => string                 '1*CallBackDataIn_all*all*1_3_4_f1a9bcf2faaa2ef67a39916ba06cbbb0*25' (length=66)   
protected '_yz_rk' => string '1_3_4_f1a9bcf2faaa2ef67a39916ba06cbbb0' (length=38)

2 个答案:

答案 0 :(得分:2)

根据班级的source code,您可以按以下方式访问该值:

{%% for callback in callbacks %}
    {{ callback.__get('id_s') }
{% endfor %}

答案 1 :(得分:-1)

@Matteo thx再一次。但我有点困惑,因为我问自己为什么它在php中使用$ callBack-> id_s而没有魔法__get()而不是在树枝上?

另一个问题,你推荐remialvado吗? Basho是Riak的官方php_client。