@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
  • Вопрос задан
  • 244 просмотра
Решения вопроса 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 вручную.. т.к. в модели есть связанные таблицы, для получения данных из них придётся немного вручную пописать запросы..
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы