Exemple #1
0
 function testOrderByItem()
 {
     $o = new OrderBy();
     $o->setColumn('name');
     $this->assertEquals('/orderby:name/', $o->asUrl()->toString(), 'Адрес для сортировки без указанного URL');
     $o->setUrl(new URL('test', 'me', array('orderby' => 'id', 'id' => 2)));
     $this->assertEquals('/test/me/orderby:name/id:2/', $o->asUrl()->toString(), 'Адрес для сортировки с указанным URL');
     $this->assertEquals('`name` ASC', $o->asSQL(), 'Сортировка по имени колонки по-возрастанию');
     $this->assertEquals('name', $o->asUrlParameter(), 'Сортировка по-возрастанию');
     $this->assertEquals('_name', $o->asUrlParameter(false), 'Сортировка по-убыванию указанная явно');
     $o->setAsc(false);
     $this->assertEquals('_name', $o->asUrlParameter(), 'Сортировка по-убыванию указанная через свойство объекта');
     $this->assertEquals('`name` DESC', $o->asSQL(), 'Сортировка по имени колонки по-убыванию');
     $o->setSql('count(*)');
     $this->assertEquals('count(*) DESC', $o->asSQL(), 'Сортировка по указанному условию SQL по-убыванию');
 }
Exemple #2
0
 /**
  * Добавление возможности сортировки по колонке
  *
  * @return OrderBy
  */
 public function addOrderBy($column, $name = null, $sql = null)
 {
     $o = new OrderBy();
     $o->setColumn($column);
     $o->setName($name);
     $o->setSql($sql);
     $o->setNavigator($this);
     $this->orderby_options[$column] = $o;
     return $o;
 }