/** * Return the pivot table as array * * @return array */ public function toArray() { if ($this->xAxisFilter === null && $this->yAxisFilter === null || $this->xAxisFilter !== null && $this->yAxisFilter !== null) { $xAxis = $this->queryXAxis()->fetchColumn(); $yAxis = $this->queryYAxis()->fetchColumn(); } else { if ($this->xAxisFilter !== null) { $xAxis = $this->queryXAxis()->fetchColumn(); $yAxis = $this->queryYAxis()->where($this->xAxisColumn, $xAxis)->fetchColumn(); } else { // $this->yAxisFilter !== null $yAxis = $this->queryYAxis()->fetchColumn(); $xAxis = $this->queryXAxis()->where($this->yAxisColumn, $yAxis)->fetchColumn(); } } $pivot = array(); if (!empty($xAxis) && !empty($yAxis)) { $this->baseQuery->where($this->xAxisColumn, $xAxis)->where($this->yAxisColumn, $yAxis); foreach ($yAxis as $yLabel) { foreach ($xAxis as $xLabel) { $pivot[$yLabel][$xLabel] = null; } } foreach ($this->baseQuery as $row) { $pivot[$row->{$this->yAxisColumn}][$row->{$this->xAxisColumn}] = $row; } } return $pivot; }
/** * Return the pivot table as an array of pivot data and pivot header * * @return array */ public function toArray() { if ($this->xAxisFilter === null && $this->yAxisFilter === null || $this->xAxisFilter !== null && $this->yAxisFilter !== null) { $xAxis = $this->queryXAxis()->fetchPairs(); $yAxis = $this->queryYAxis()->fetchPairs(); } else { if ($this->xAxisFilter !== null) { $xAxis = $this->queryXAxis()->fetchPairs(); $yAxis = $this->queryYAxis()->where($this->xAxisColumn, $xAxis)->fetchPairs(); } else { // $this->yAxisFilter !== null $yAxis = $this->queryYAxis()->fetchPairs(); $xAxis = $this->queryXAxis()->where($this->yAxisColumn, $yAxis)->fetchPairs(); } } $pivotData = array(); $pivotHeader = array('cols' => $xAxis, 'rows' => $yAxis); if (!empty($xAxis) && !empty($yAxis)) { $xAxisKeys = array_keys($xAxis); $yAxisKeys = array_keys($yAxis); $this->baseQuery->where($this->xAxisColumn, $xAxisKeys)->where($this->yAxisColumn, $yAxisKeys); foreach ($yAxisKeys as $yAxisKey) { foreach ($xAxisKeys as $xAxisKey) { $pivotData[$yAxisKey][$xAxisKey] = null; } } foreach ($this->baseQuery as $row) { $pivotData[$row->{$this->yAxisColumn}][$row->{$this->xAxisColumn}] = $row; } } return array($pivotData, $pivotHeader); }
public function where($condition, $value = null) { // $this->count = $this->select = null; return parent::where($condition, $value); }