Версия Laravel 10.47, выпущенная в неделю, привнесла множество улучшений и нововведений, включая новые методы whereAll() и whereAny() для построителя запросов, поддержку флагов параметров сортировки в методе sortByMany() для коллекций, и возможность установить свойство $failOnTimeout для заданий очереди. Эти изменения делают Laravel еще более мощным и гибким инструментом для разработки веб-приложений.

Новые методы whereAll() и whereAny()

Эти методы позволяют выполнять поиск по нескольким столбцам с использованием логики AND или OR. Это упрощает написание запросов, когда необходимо проверить, соответствует ли значение одного или нескольких столбцов определенным критериям.

Пример использования whereAny():

User::whereAny(
    [
        'first_name',
        'last_name',
        'email',
        'phone'
    ],
    'LIKE',
    "%$search%"
);

Пример использования whereAll():

User::whereAll([
    'first_name',
    'last_name',
    'email',
], 'LIKE', "%$search%");

Поддержка флагов параметров сортировки в sortByMany()

Теперь можно передавать в метод sortBy() коллекции несколько параметров сортировки, используя флаги сортировки PHP. Это упрощает сортировку данных по нескольким критериям.

Пример использования:

$this->campaigns = $campaigns
    ->with('folder', 'campaignCategory')
    ->get()
    ->sortBy(['folder.name', 'campaignCategory.name', 'name'], SORT_NATURAL | SORT_FLAG_CASE);

Установка $failOnTimeout для прослушивателей очереди

Свойство $failOnTimeout позволяет указать, должно ли задание завершиться неудачей в случае превышения времени ожидания. Это полезно для управления поведением заданий в очереди.

Пример использования:

class UpdateSearchIndex implements ShouldQueue
{
    public $failOnTimeout = false;
}

Заключение

Версия Laravel 10.47 представляет собой значительное обновление, добавляющее новые возможности и улучшения, которые делают разработку более эффективной и удобной. Эти изменения, включая новые методы построителя запросов и поддержку флагов параметров сортировки, делают Laravel еще более мощным инструментом для разработчиков.