ホームページ >PHPフレームワーク >Laravel >Laravelでクエリ結果をループする方法を詳しく解説

Laravelでクエリ結果をループする方法を詳しく解説

PHPz
PHPzオリジナル
2023-04-06 16:48:141603ブラウズ

Laravel は人気のある PHP 開発フレームワークであり、データベースへのクエリは頻繁に使用される操作の 1 つです。実際の開発プロセスでは、結果を表示したりさらに処理したりするために、クエリ結果をループする必要がある場合があります。この記事では、Laravelでクエリ結果をループする方法を紹介します。

1. データのクエリ

結果をクエリするループを開始する前に、まずデータをクエリする必要があります。 Laravel は、Eloquent ORM と Query Builder という 2 つのクエリ メソッドを提供します。 Eloquent ORM は、データベース内のテーブルをオブジェクトにマッピングできるオブジェクト リレーショナル マッピングであり、データベースの操作を容易にします。クエリ ビルダーもクエリ メソッドであり、連鎖呼び出しを通じて SQL クエリ ステートメントを構築するビルダー パターンです。

Eloquent ORM とクエリ ビルダーを使用してデータをクエリする方法を紹介します。

(1) Eloquent ORM クエリ データ

Eloquent ORM を使用してデータをクエリする場合、最初に対応するモデルを定義する必要があります。モデルはデータベースのテーブルに対応し、フィールド、関連テーブル、データ操作、その他のメソッドをモデルで定義できます。

モデルの定義例:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    // 定义对应表的名称
    protected $table = 'user';

    // 定义主键名称
    protected $primaryKey = 'id';

    // 定义可被批量赋值的字段
    protected $fillable = [
        'name', 'age', 'gender'
    ];

    // 定义关联关系等方法
}

モデルを定義した後、Eloquent ORM を使用してクエリを実行できます。

すべてのデータをクエリする:

$users = App\Models\User::all();

1 つのデータをクエリする:

$user = App\Models\User::find(1);

条件に基づいて複数のデータをクエリする:

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

必要なものここで注目すべき点は、Eloquent ORM クエリの結果は配列ではなく Collection オブジェクトであるということです。コレクション オブジェクトは、データの処理に役立つ多くの便利なメソッドを提供します。

(2) データをクエリするクエリ ビルダー

クエリ ビルダーを使用してデータをクエリするには、DB クラスのメソッドを直接呼び出します。クエリ ビルダーを使用する場合は、最初に DB クラスの table メソッドを呼び出してクエリ テーブルを指定する必要があります。その後、連鎖呼び出しを通じて SQL クエリ ステートメントを構築できます。

すべてのデータをクエリする:

$users = DB::table('user')->get();

1 つのデータをクエリする:

$user = DB::table('user')->where('id', '=', 1)->first();

条件に基づいて複数のデータをクエリする:

$users = DB::table('user')->where('age', '>', 18)->get();

2. ループスルークエリ結果

データをクエリした後、クエリ結果をループできます。 foreach ループまたは for ループを使用して走査できます。

(1) foreach ループの使用

foreach ループを使用すると、クエリ結果 (Eloquent ORM によってクエリされた Collection オブジェクト、または Query Builder によってクエリされた stdClass オブジェクト) を直接ループできます。

Eloquent ORM の例:

$users = App\Models\User::all();
foreach($users as $user) {
    echo $user->name;
}

Query Builder の例:

$users = DB::table('user')->get();
foreach($users as $user) {
    echo $user->name;
}

(2) for ループの使用

for ループを使用する場合、最初に変換する必要があります。クエリ結果を配列に変換してから走査します。

Eloquent ORM の例:

$users = App\Models\User::all()->toArray();
$total = count($users);
for($i = 0; $i < $total; ++$i) {
    echo $users[$i][&#39;name&#39;];
}

クエリ ビルダーの例:

$users = DB::table(&#39;user&#39;)->get()->toArray();
$total = count($users);
for($i = 0; $i < $total; ++$i) {
    echo $users[$i]->name;
}

概要

この記事では、Laravel の Eloquent ORM とクエリ ビルダーの両方を紹介しました。データをクエリするにはいくつかの方法があり、foreach ループと for ループを使用して走査するためのサンプル コードが提供されています。実際の開発プロセスでは、特定のビジネス ニーズに応じて、データ クエリとトラバースに適切な方法を選択できます。

以上がLaravelでクエリ結果をループする方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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