Как получить текстовый порядок строк в проекте Laravel - PullRequest
0 голосов
/ 26 апреля 2020

Я хотел бы отсортировать столбец как orderBy.

'W C' столбцы содержат такие данные

'AB-1' 'AB-2' 'AB-5' 'AB-300' 'AB-1980' .... etc

Передняя часть буквы "AB-" такая же. затем приходит число.

Не могли бы вы научить меня, как писать код, пожалуйста?

 public function index()
    {
        $images = ImageGallery::orderBy('wc', 'asc')->get();
        return view('image-gallery',compact('images'));
    }

1 Ответ

1 голос
/ 26 апреля 2020

Если вы просто упорядочите по полю, результат будет:

'AB-1' 'AB-1980' 'AB-2' 'AB-200' 'AB-3' 'AB-301'...

Вы можете использовать порядок по длине значения, а затем упорядочить по этому полю:

ImageGallery::orderBy(DB::raw('LENGTH(wc), wc'))->get();

Результат будет:

'AB-1' 'AB-2' 'AB-3' 'AB-200' 'AB-301' 'AB-1980' ...
...