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

PHPz
リリース: 2023-04-06 16:53:45
オリジナル
1524 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!