ホームページ  >  記事  >  PHPフレームワーク  >  laravelクエリ構文

laravelクエリ構文

WBOY
WBOYオリジナル
2023-05-29 10:01:37774ブラウズ

Laravel は現在最も人気のある PHP フレームワークの 1 つで、そのクエリ構文は洗練されており、シンプルで使いやすいです。この記事では、Laravel のクエリ構文を詳しく説明し、いくつかの一般的なクエリ方法と複雑なクエリを実行する方法を紹介します。

Laravel クエリの基本構文
Laravel では、クエリステートメントは Eloquent ORM を使用して構築されます。 ORM はオブジェクト リレーショナル マッピングであり、オブジェクト指向の方法でデータベースを操作できるようになり、データベースとの対話プロセスが大幅に簡素化されます。

以下は、Laravel クエリ構文の使用例です:

//単一ユーザーを取得します
$user = User::find(1);

/ /ユーザー List
$users = User::all();

//指定された条件でユーザーのリストを取得するための条件付きフィルタリング
$users = User::where('age ', '> ', 18)->get();

//データ更新
$user->name = '新しい名前';
$user->save ();

//データの削除
$user->delete();

上記のように、Laravel クエリ構文を使用すると、基本的な CURD 操作を簡単に実装できます。以下に、一般的に使用されるクエリ方法をいくつか紹介します。

一般的に使用されるクエリ メソッド

  1. where()
    where() メソッドは、非常に一般的な条件付きフィルタリング メソッドです。指定された条件に基づいて要件を満たすレコードをフィルターで除外します。例:

$users = User::where('age', '>', 18)->where('gender', 'male')->get() ;

where() メソッドは、演算子を指定する 3 番目のパラメーターを受け取ることもできます (例:

$users = User::where('age', '>=', 18)->get();

  1. orderBy()
    orderBy() メソッドはソートに使用されます。たとえば、ユーザーの年齢で並べ替えることができます:

$users = User::orderBy('age')->get();

デフォルトでは、orderBy ()メソッドは昇順に並べられています。降順で並べ替えたい場合は、DESC パラメータを渡すことができます:

$users = User::orderBy('age', 'desc')->get();

また、orderBy() メソッドは、複数の並べ替え条件を指定するために複数のパラメーターを受け取ることができます:

$users = User::orderBy('age', 'desc')->orderBy('name')- >get();

  1. select()
    select() メソッドは、指定された列をクエリするために使用されます。例:

$users = User::select('name', 'email')->get();

* を使用してすべての列をクエリすることもできます:

$users = User::select('*')->get();

  1. take() メソッドと Skip()
    take() メソッドは次のとおりです。返されるレコードの数を制限するために使用されます。skip() は、指定された数のレコードをスキップするために使用されます。たとえば、上位 10 人のユーザーをクエリできます。

$users = User::take(10)->get();

また、skip( を使用することもできます。 ) メソッド ページングの実装:

$users = User::skip(10)->take(10)->get();

  1. whereIn() および whereNotIn( )
    whereIn()、whereNotIn() メソッドを使用すると、クエリで IN と NOT IN を使用できます。たとえば、18 歳未満のユーザーを取得するには、次のように記述できます:

$users = User::whereIn('age', [16, 17, 18])->get() ;

  1. whereNull() と whereNotNull()
    whereNull() メソッドは、指定された列が空であるレコードをフィルターで除外でき、whereNotNull() は空ではないレコードをフィルターで除外できます。例:

$users = User::whereNull('email')->get();

  1. groupBy() および getting()
    groupBy () メソッドは結果セットをグループ化するために使用され、having() メソッドはグループ化された結果をフィルタリングするために使用されます。たとえば、性別でグループ化し、20 歳以上の男性ユーザーを除外できます。

$users = User::groupBy('gender')->having('age ', '>', 20)->get();

複雑なクエリ

上記では、Laravel クエリ構文の基本的な使用法をいくつか紹介しています。ただし、実際の開発では、通常クエリを実行する必要があるデータは非常に複雑な場合があり、それを実現するにはさらに多くのクエリ メソッドを使用する必要があります。 Laravel では、クエリ ビルダーを使用して、より複雑なクエリ ステートメントを作成できます。

たとえば、ユーザーの購入記録で累積消費額が 500 元を超えるユーザーをクエリするには、次のように記述できます:

$users = DB::table('users' )

        ->join('orders', 'users.id', '=', 'orders.user_id')
        ->select('users.id', 'users.name', 'users.email', DB::raw('SUM(orders.total) as total'))
        ->groupBy('users.id')
        ->having('total', '>', 500)
        ->get();

上記のコードでは、join() メソッドを使用して user テーブルと order テーブルを接続し、groupBy() メソッドを使用してユーザーをグループ化し、having() メソッドを使用してフィルタリングします。累計消費額が500元を超えたユーザー。

概要

Laravel では、Eloquent ORM を使用して基本的な CURD 操作を簡単に実装できます。同時に、クエリ ビルダーを使用して、より複雑なクエリを実装できます。この記事がLaravelのクエリ構文を理解するのに役立つことを願っています。

以上がlaravelクエリ構文の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。