Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 /**
  * 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);
 }
Ejemplo n.º 3
0
 public function where($condition, $value = null)
 {
     // $this->count = $this->select = null;
     return parent::where($condition, $value);
 }