Laravel で接続されたテーブル データをクエリする方法を説明する例

PHPz
リリース: 2023-04-07 17:24:13
オリジナル
1002 人が閲覧しました

Laravel は、シンプルさ、優雅さ、MVC アーキテクチャのサポートを特徴とするオープンソースの PHP フレームワークです。 Laravel フレームワークは、PHP 開発者にとって推奨されるツールの 1 つであり、その迅速な開発、優れたスケーラビリティ、優れたドキュメント サポートで広く賞賛されています。その中でも、Laravelの接続テーブルクエリデータは非常に重要な機能なので、以下に簡単に紹介します。

データベース内で、異なるテーブル間にリレーションシップがある場合、必要なデータを取得するには、これらのリレーションシップに基づいて結合クエリを実行する必要があります。これがテーブル結合クエリです。以下では、例を使用して、Laravel で接続されたテーブル データをクエリする方法を学習します。

  1. 2 つのデータ テーブルの作成

関連するコードを記述する前に、結合テーブル クエリ関数をテストするために 2 つのデータ テーブルを作成する必要があります。ここでは生徒テーブルと成績テーブルを例に挙げます。学生テーブルには学生の学生番号、名前、クラスが含まれ、成績テーブルには学生番号、科目名、成績が含まれます。 2 つのデータテーブルを作成した後、Laravel で対応するモデルを確立する必要があります。

  1. クエリ接続テーブル データ

Laravel クエリ構文は非常に簡潔かつ洗練されており、使用するのも非常に便利です。 Laravel を通じてテーブル結合クエリを実行する方法を見てみましょう。

最初に、Student モデルで Grade モデルに関連付けるメソッドを定義します。

public function grades()
{
    return $this->hasMany('App\Grade', 'student_id', 'id');
}
ログイン後にコピー

このメソッドの機能は、Student モデルと Grade モデルの間の関係を確立することです。hasMany は Student を表します。は複数の科目のスコアに対応する可能性があるため、「1 対多」の関係が使用されます。次の 2 つのパラメータは、Laravel に対応するデータベース フィールド名です。最初のパラメータは成績テーブルの Student テーブルを関連付けるために使用されるフィールド名を表し、2 番目のパラメータは Student テーブルの主キーを表します。

次に、Laravel のクエリ メソッドを使用して、Student テーブルと Grade テーブルのデータをクエリします。学生の学生 ID 番号、名前、すべての科目の成績をクエリする必要があるとします。次のコードを記述できます:

$students = Student::with('grades')->get();
ログイン後にコピー

このコードは、すべての学生情報と対応する成績を含む配列を返すため、次のコードを使用する必要があります。 foreach ループでこの配列を走査し、各生徒の名前、生徒番号、対応する科目の成績を出力します。

foreach ($students as $student) {
    echo $student->id . ' - ' . $student->name . '<br>';
    foreach ($student->grades as $score) {
        echo $score->grade . ' - ' . $score->subject . '<br>';
    }
}
ログイン後にコピー

このコードは、すべての学生の学生番号、名前、学年情報を出力します。この例からわかるように、Laravel を使用して接続されたテーブルのデータをクエリするのは非常に便利で、コード サイズは非常に簡潔です。

概要

Laravel の接続テーブル クエリ データは非常にシンプルでエレガントで便利で、Laravel のモデル関連付けメソッドを使用することで、異なるモデル間の関係を簡単に確立できます。クエリ文を使用する場合、対応するメソッドを呼び出すだけでクエリ機能と出力機能が実現されるため、コーディングの難易度や負担が大幅に軽減されます。 Laravelの結合テーブルクエリ機能を使いこなせると、開発効率が大幅に向上し、開発作業がより便利になります。

以上がLaravel で接続されたテーブル データをクエリする方法を説明する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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