首页  >  问答  >  正文

Laravel 中的排序:按不同列排序(首先按整数,然后按字符串)

我列出了按 device.sort_order 整数列订购的项目,该列工作正常。

$parts = \App\DevicePart::with('device')->get()->sortBy('device.sort_order')->values();

@foreach($parts as $i)
  {{ $i->device->sort_order }} - {{ $i->title }}
@endforeach

这将产生一个如下所示的列表:

1 - Carga
1 - Baseband
2 - Baseband
2 - Conectores
2 - Camera

所以,现在我想通过 title 字段对其进行二次排序,而不丢失第一顺序,因此 ITEM TITLES 可以按字母顺序显示。

1 - Baseband
1 - Carga
2 - Baseband
2 - Camera
2 - Conectores

有什么办法可以做到这一点吗?

P粉124890778P粉124890778185 天前352

全部回复(1)我来回复

  • P粉099985373

    P粉0999853732024-03-31 17:09:15

    使用 ORDER BY sort_order, title,它在 Laravel 中的等效项是:

    $parts = \App\DevicePart::with('device')
        ->orderBy('sort_order')
        ->orderBy('title')
        ->get();
    

    回复
    0
  • 取消回复