2014-02-13 48 views
0

我有此數組元素的要被打印的圖表:訪問在樹枝Symfony2中的陣列值

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串值「這段代碼

{{富[0] 0.1}}

但我似乎無法用指標和瀏覽量我想這一個

訪問對象

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

但它不工作,人有一個想法訪問對象元素? 我有這樣的服務:

<?php 

namespace BTI\RepSysBundle\Services; 

use BTI\RepSysBundle\Objects\Gapi; 

class GapiManager { 
public function GAPIGetter() { 
    $Gapi = new Gapi('[email protected]', '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); 
} 

} 

基本上是這樣的服務請求從谷歌Analytics(分析)報告數據並返回提到的每個URL路徑的頁面訪問量。問題是它從Gapi類返回一個私有對象。

回答

1

您的metrics財產是私人。你必須寫吸氣此屬性,如:

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

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

之後,你必須通過object.metrics在樹枝訪問。

請閱讀關於樹枝Twig Variables的文檔。

+0

我真的很困惑,我剛剛使用它,並且它是私人的時候訪問它,並繪製了一個圖表,但是當我改變它不能被訪問的時候。 – Cedric

+0

我已經有這些代碼在我的對象'公共函數getDimesions() { return $ this-> dimensions; }與度量相同。 – Cedric

+0

所以,你必須爲'metrics'屬性編寫getter。我更新了我的回答,添加了文檔鏈接,請閱讀。 – NHG