«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как использовать красноречивость в laravel

Как использовать красноречивость в laravel

Опубликовано 31 июля 2024 г.
Просматривать:725

Image description

В этой статье мы реализуем laravel eloquent When Condition. В процессе фильтрации мы используем условие if-else по запросу. Проверьте код ниже.

if($request->filter_by == 'amount')
{
    $query->where('amount', '>', request('amount', 0));
}

if($request->filter_by == 'created_at')
{
    $query->orderBy('created_at', request('order', 'desc'));
}

Как использовать красноречивость в laravel

Вы можете использовать метод When(). Он более читабелен и удобен для пользователя. Проверьте код ниже.

$query = Order::query();

$query->when(request('filter_by') == 'amount', function($q){
    return $q->where('amount','>', request('amount',0));
});
$query->when(request('filter_by') == 'created_at', function($q){
    return $q->orderBy('created_at', request('order','desc'));
});

Вы можете передать третий аргумент методу When. Это замыкание будет выполнено только в том случае, если первый аргумент оценивается как ложь.

$query = Order::query();
$query->when(request('filter_by') == 'amount', function($q){
    return $q->where('amount','>', request('amount',0));
}, function($q){
    return $q->orderBy('created_at', request('order','desc'));
})->get();

Это не только более красивый способ написать тот же «ЕСЛИ», но и отличный способ организовать условные запросы.

Подробнее о статьях такого типа можно прочитать на сайте

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/rohiturane/how-to-use-eloquent-when-in-laravel-3b6b?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3