我将这个元素数组打印成图表:
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类返回一个私有对象。
答案 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的文档。