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]['name']; }
クエリ ビルダーの例:
$users = DB::table('user')->get()->toArray(); $total = count($users); for($i = 0; $i < $total; ++$i) { echo $users[$i]->name; }
概要
この記事では、Laravel の Eloquent ORM とクエリ ビルダーの両方を紹介しました。データをクエリするにはいくつかの方法があり、foreach ループと for ループを使用して走査するためのサンプル コードが提供されています。実際の開発プロセスでは、特定のビジネス ニーズに応じて、データ クエリとトラバースに適切な方法を選択できます。
以上がLaravelでクエリ結果をループする方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。