Как сделать что бы в eloquent была выборка сначала по одним условиям, а потом по другим, что-то вроде вложенного select?

В Laravel вы можете использовать метод orderByRaw для создания более сложной сортировки по условиям в запросах Eloquent. Таким образом, вы можете сделать выборку сначала по одним условиям, а затем по другим, похоже на вложенный select.

Например, предположим, что у вас есть модель User с полями id, name и created_at. Вы хотите сделать выборку пользователей, сначала по имени в алфавитном порядке, а затем по дате их создания.

$users = User::orderByRaw("name ASC, created_at ASC")->get();

В приведенном выше примере, метод orderByRaw принимает строковое значение в качестве аргумента. Вы указываете условия сортировки в этой строке, разделяя их запятой. В данном случае, мы указали сортировку по имени в алфавитном порядке с помощью name ASC, за которым следует сортировка по дате создания с помощью created_at ASC.

Вы можете использовать такую "вложенную" сортировку по нескольким условиям с помощью метода orderByRaw в любом месте вашего запроса Eloquent. Это дает вам гибкость и контроль над сортировкой результатов.

Надеюсь, эта информация окажется полезной для вас при работе с Laravel и создании выборок с различными условиями сортировки.