访问twig symfony2中的数组值

时间:2014-02-13 08:16:41

标签: arrays symfony twig

我将这个元素数组打印成图表:

array(7) {
  [0]=>
  array(2) {
    [0]=>
    array(0) {
    }
    [1]=>
    string(22) "/app_dev.php/users/new"
  }
  [1]=>
  array(2) {
    [0]=>
    array(0) {
    }
    [1]=>
    string(19) "/app_dev.php/users/"
  }



  [2]=>
  array(2) {
[0]=>
    array(1) {
      [0]=>
      object(BTI\RepSysBundle\Objects\gapiReportEntry)#359 (2) {
        ["metrics":"BTI\RepSysBundle\Objects\gapiReportEntry":private]=>
        array(1) {
          ["pageviews"]=>
          int(54)
        }
        ["dimensions":"BTI\RepSysBundle\Objects\gapiReportEntry":private]=>
        array(1) {
          ["dimension1"]=>
          string(14) "rainercedric23"
        }
      }
    }
    [1]=>
    string(30) "/app_local.php/admin/analytics"
  }
  [3]=>
  array(2) {
    [0]=>
    array(0) {
    }
    [1]=>
    string(16) "/admin/analytics"
  }
}

问题是我可以通过此代码访问字符串值,如“/app_dev.php/users/new”

  

{{foo [0] .1}}

但我似乎无法使用指标和网页浏览来访问该对象我正在尝试这个

  

{{foo [2] .0.0.metrics.pageviews}}

但它不起作用,任何人都有想法访问对象元素? 我有这项服务:

<?php

namespace BTI\RepSysBundle\Services;

use BTI\RepSysBundle\Objects\Gapi;

class GapiManager {
public function GAPIGetter() {
    $Gapi = new Gapi('foo@foobar.com', 'somepassword');
    $path = array("/app_dev.php/users/new",
        "/app_dev.php/users/",
        "/app_local.php/admin/analytics",
        "/admin/analytics",
        "/app_dev.php/account/",
        "/app_dev.php",
        "/app_dev.php/account/new"
    );

    foreach ($path as $filterpath) {
        $filters[] = "ga:pagePath==" . $filterpath;
    }
    $ctr = 0;
    foreach ($filters as $filter) {
        $Gapisquery[] = array($Gapi->requestReportData('81757262', array('dimension1'), array('pageviews'), 'pageviews', $filter), $path[$ctr]);
        $ctr++;
    }



    return array_filter($Gapisquery);
}

}

此服务基本上会从Google Analytics请求报告数据,并从所提到的每个网址路径返回网页浏览量。问题是它从Gapi类返回一个私有对象。

1 个答案:

答案 0 :(得分:1)

您的metrics媒体资源私有。您必须为此属性编写getter,如:

// file BTI\RepSysBundle\Objects\gapiReportEntry.php
namespace BTI\RepSysBundle\Objects;

class gapiReportEntry{
    // other code
    public function getMetrics{
       return $this->metrics;
    }
}

之后,您可以通过object.metrics访问树枝。

请阅读有关twig Twig Variables的文档。