Laravelでeloquentを使用する方法

WBOY
リリース: 2024-07-18 08:16:59
オリジナル
986 人が閲覧しました

Image description

この記事では、laravel eloquent when 条件を実装しています。フィルターアウト プロセスでは、リクエストに応じて 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でeloquentを使用する方法

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

ログイン後にコピー

3 番目の引数を when メソッドに渡すことができます。このクロージャは、最初の引数が false と評価された場合にのみ実行されます。

$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();
ログイン後にコピー

これは、同じ「IF」をよりわかりやすく記述するだけでなく、条件付きクエリを整理する優れた方法でもあります。

この種の記事について詳しくは、サイトで読むことができます

以上がLaravelでeloquentを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート