ホームページ  >  記事  >  PHPフレームワーク  >  laravelにおけるORMの実装原理を詳しく解説

laravelにおけるORMの実装原理を詳しく解説

PHPz
PHPzオリジナル
2023-04-03 18:52:251004ブラウズ

Laravel は広く使用され、高く評価されている PHP フレームワークです。データベース アクセスからルーティングやコントローラーに至るまで、多くの便利な機能を提供します。中でも ORM (オブジェクト リレーショナル マッピング) は Laravel の重要なコンポーネントであり、データベースを操作するための便利な方法を提供し、コードをより明確で理解しやすくします。この記事では、Laravel ORM の実装原則を詳しく見ていきます。

ORM とは?

まず、ORM について簡単に紹介します。 ORM は、オブジェクト指向プログラミング (OOP) とリレーショナル データベース間のマッピングを確立するテクノロジです。 ORM では、各テーブルがクラスに対応し、各行がオブジェクトに対応します。このように、オブジェクトを通じてデータベース操作を簡素化し、コードをより明確で理解しやすくすることができます。 ORM の利点は、SQL ステートメントを使用する代わりに、より自然な方法でデータベースにアクセスできることです。したがって、ORM は Laravel において非常に重要であり、これにより PHP がデータベースと対話し、コードをより速く、より確実に記述できるようになります。

Laravel ORM 実装の原則

Laravel の ORM 実装は、アクティブ レコード設計パターンに基づいています。 Active Record では、クラスがテーブルに対応し、このクラスのインスタンスが行に対応します。 Laravel は、強力で使いやすい ORM である Eloquent ORM をデフォルトの ORM として使用します。 Eloquent を使用すると、オブジェクトを操作することでデータベースを操作するプロセスを簡素化できます。

以下では、Laravel ORM の実装原理を深く理解します。

データベースに接続します

ORM を使用する前に、に接続する必要があります。まずデータベース。 Laravel では、リレーショナル データベースに接続するために PDO 拡張ライブラリが使用されます。 Laravel ORM を使用する前に、まず使用するデータベースを定義する必要があり、Laravel はこの設定に基づいてデータベースに接続します。

モデルの定義

Laravel では、各データベース テーブルが Eloquent モデルに対応します。このモデルは、Illuminate\Database\Eloquent\Model クラスから継承する必要がある通常の PHP クラスです。 Eloquent モデルでは、モデルに対応するデータ テーブル名、主キー、および入力可能なフィールドを定義できます。これらの設定は、Eloquent を通じてデータ テーブルと対応するデータ レコードの操作を自動的に処理します。

たとえば、Laravel で User モデルを定義するには、次のように記述できます:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $table = 'users';

    protected $primaryKey = 'id';

    protected $fillable = ['name', 'email', 'password'];
}

上記のコードでは、$table 属性は、対応するデータ テーブル名 "users"、$primaryKey を指定します。属性は、対応するデータ テーブルの主キー フィールド名「id」を指定し、$fillable 属性は、Eloquent を通じて自動的に更新できるフィールドを指定します。

クエリ メソッド

ORM の最も基本的な機能は、データベースにクエリを実行することです。 Laravel では、Eloquent が多くのクエリ メソッドを提供しており、データを簡単にクエリ、フィルタリング、並べ替えることができます。

たとえば、次の方法で User テーブル内のすべてのユーザーをクエリできます:

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

このクエリ メソッドは、モデル クラス User を通じてデータベース テーブル "users" をクエリし、リストを返します。ユーザーの Eloquent コレクション オブジェクトをすべて含みます。

クエリ ビルダーを使用して、より複雑なクエリ ステートメントを作成することもできます。例:

$users = App\Models\User::where('name', 'John')->orderBy('id', 'desc')->get();

このクエリ ステートメントは、「John」という名前のすべてのユーザーをクエリし、ID フィールドに従って降順に並べ替えて、Eloquent コレクション オブジェクトを返します。

データの挿入

Laravel では、ORM を使用してデータを挿入すると非常に便利です。新しい Eloquent モデル インスタンスを作成し、対応するフィールドの値を設定し、save() メソッドを通じてデータベースに保存するだけです。

たとえば、次の方法で新しいデータを User テーブルに挿入できます:

$user = new App\Models\User;

$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->password = bcrypt('secret');

$user->save();

この挿入操作では、新しい User インスタンスが作成され、その "名前" が設定されます。 「電子メール」、「パスワード」のプロパティを設定し、データベースに保存します。

データの更新

Laravel では、Eloquent を通じてデータを簡単に更新することもできます。更新するデータ レコードを見つけて、対応するフィールドの値を設定し、最後に save() メソッドを呼び出してデータベースに更新するだけです。

たとえば、id フィールドでレコードを検索し、その「name」フィールドを「Jane」に更新できます。

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

$user->name = 'Jane';

$user->save();

この更新操作では、プライマリ レコードを持つユーザー レコードが検索されます。キー 1 の「名前」フィールドを「Jane」に更新し、データベースに更新します。

データの削除

最後に、Laravel でデータ レコードを簡単に削除することもできます。削除するデータ レコードを見つけて、delete() メソッドを呼び出すだけです。

たとえば、id フィールドでレコードを検索し、それを削除できます。

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

$user->delete();

この削除操作では、主キー 1 を持つユーザー レコードが検索され、それがから削除されます。データベース。

概要

ORM は Laravel の重要なコンポーネントであり、データベースを操作する便利な方法を提供し、コードをより明確で理解しやすくします。この記事では、データベースへの接続、モデルの定義、データのクエリ、データの挿入、データの更新、データの削除の方法を含む、Laravel ORM の実装原則を深く理解しています。この知識を習得することで、Laravel ORM をより適切に使用してデータベース操作を実装できるようになり、コードをより速く、より確実に作成できるようになります。

以上がlaravelにおけるORMの実装原理を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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