/** * @param string $section * @param \Sorien\DataGridBundle\Grid\Grid $grid * @param \Sorien\DataGridBundle\Grid\Column\Column $param * @return string */ public function getGridUrl($section, $grid, $param = null) { if ($section == 'order') { if ($param->isSorted()) { return $grid->getRouteUrl() . '?' . $grid->getHash() . '[' . Grid::REQUEST_QUERY_ORDER . ']=' . $param->getId() . '|' . ($param->getOrder() == 'asc' ? 'desc' : 'asc'); } else { return $grid->getRouteUrl() . '?' . $grid->getHash() . '[' . Grid::REQUEST_QUERY_ORDER . ']=' . $param->getId() . '|asc'; } } elseif ($section == 'page') { return $grid->getRouteUrl() . '?' . $grid->getHash() . '[' . Grid::REQUEST_QUERY_PAGE . ']=' . $param; } elseif ($section == 'limit') { return $grid->getRouteUrl() . '?' . $grid->getHash() . '[' . Grid::REQUEST_QUERY_LIMIT . ']='; } }
/** * @param \Sorien\DataGridBundle\Grid\Column\Column $column * @param boolean $withAlias * @return string */ private function getFieldName($column, $withAlias = true) { $name = $column->getField(); if (strpos($name, '.') === false) { return self::TABLE_ALIAS . '.' . $name; } $parent = self::TABLE_ALIAS; $elements = explode('.', $name); while ($element = array_shift($elements)) { if (count($elements) > 0) { $this->joins['_' . $element] = $parent . '.' . $element; $parent = '_' . $element; $name = $element; } else { $name .= '.' . $element; } } if ($withAlias) { return '_' . $name . ' as ' . $column->getId(); } return '_' . $name; }