"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como usar eloquente quando em laravel

Como usar eloquente quando em laravel

Publicado em 31/07/2024
Navegar:992

Image description

Neste artigo, estamos implementando laravel eloquent quando condição. No processo de filtragem, usamos a condição if-else mediante solicitação. Verifique o código abaixo.

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

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

Como usar eloquente quando em laravel

Você pode usar o método when(). É mais legível e fácil de usar. Verifique o código abaixo.

$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'));
});

Você pode passar o terceiro argumento para o método when. Este encerramento só será executado se o primeiro argumento for avaliado como falso.

$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();

Não é apenas uma maneira mais bonita de escrever o mesmo "IF", mas também é uma ótima maneira de organizar consultas condicionais.

Você pode ler mais sobre esse tipo de artigo no site

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/rohiturane/how-to-use-eloquent-when-in-laravel-3b6b?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3