コード例 #1
0
 /**
  * @param Fetcher $fetcher
  * @param string  $mainTableAlias
  * @return string[]
  */
 protected function getQueryParameters(Fetcher $fetcher = null, $mainTableAlias = 'ref')
 {
     $select = '';
     $from = '';
     if ($fetcher != null) {
         $selectedColumns = array();
         $selectedJoins = array();
         $columns = $fetcher->getFilterColumns();
         foreach ($columns as $column) {
             list($selectedColumns, $selectedJoins) = $this->getSelectedColumnsJoins($column, $mainTableAlias, $selectedColumns, $selectedJoins);
         }
         $sorts = $fetcher->getSorts();
         foreach ($sorts as $column => $sortOrder) {
             list($selectedColumns, $selectedJoins) = $this->getSelectedColumnsJoins($column, $mainTableAlias, $selectedColumns, $selectedJoins);
         }
         $toUse = array();
         foreach ($selectedColumns as $key => $value) {
             if ($mainTableAlias . '.id' !== $value) {
                 $toUse[$key] = $value;
             }
         }
         if (!empty($toUse)) {
             $select = ', ' . implode(', ', $toUse);
         }
         if (!empty($selectedJoins)) {
             $joins = $this->getJoins();
             $selectedJoinsSql = array_intersect_key($joins, $selectedJoins);
             $from = implode(' ', $selectedJoinsSql);
         }
     }
     return array($select, $from);
 }