@Paltinik

Как лучше сортировать записи по алфавиту?

Использую такой код, всё работает отлично.
Но чуток не так как мне надо (
public function onRun ()
{
    $this->authors = $this->loadAuthors();
}

protected function loadAuthors()
{
    $query = AppAuthor::all();

    if ($this->property('sortOrder') == 'name asc') {
        $query = $query->sortBy('name');
    }

    if ($this->property('sortOrder') == 'name desc') {
        $query = $query->sortByDesc('name');
    }

    if ($this->property('results') > 0) {
        $query = $query->take($this->property('results'));
    }

    return $query;
}


Получается результат

Anton
Borya
Valik
Гена
Дёня

Но мне надо что бы вначале сортировало по кириллице, потом по латинице, цифрам и знакам:
Типа так:

Гена
Дёня
Anton
Borya
Valik
01killer
777Вася
<3LoveIs
  • Вопрос задан
  • 269 просмотров
Решения вопроса 1
@Paltinik Автор вопроса
Сделал так:
protected function loadAuthors(){
				$table = New AppAuthor;
				$table = $table->table;
				$query = DB::select("
					select *
					from {$table} 
					ORDER BY 
					name < 'а', //русская
					name < 'a', //английская
					name < '0',
					name");



			if($this->property('results') > 0) {
			 $query = $query->take($this->property('results'));
			}

			return $query;

		}

Вроде работает норм) я хотел через модель получить данные, а не прописывать query вручную.. т.к. в модели есть связанные таблицы, для получения данных из них придётся немного вручную пописать запросы..
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы