Eloquent ORM(Object-Relational Mapping)は、Laravelでデータベースとの対話を行うための強力なツールです。このORMは、データベーステーブルをそれぞれのテーブルに対応するモデルとして扱い、PHPのオブジェクトとして操作することを可能にします。以下に、Eloquent ORMの基本的な機能と使い方を解説します。
モデルの作成
まず、データベーステーブルに対応するモデルを作成します。例えば、Userモデルを作成する場合は、php artisan make:model Userコマンドを使用します。これにより、App\Models\UserディレクトリにUser.phpというファイルが作成されます。
テーブルとの関連付け
Eloquentは、モデル名に基づいてデータベースのテーブルを推測します。しかし、明示的にテーブル名を指定する必要がある場合は、モデル内で$tableプロパティを使用して指定します。
namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $table = 'users'; }データの取得 Eloquentを使用してデータを取得する方法はいくつかあります。例えば、find()メソッドを使用して主キーによってデータを取得できます。
$user = User::find(1);
また、where()メソッドを使用して条件に一致するデータを取得することもできます。
$users = User::where('age', '>', 18)->get();
データの操作
Eloquentを使用してデータを追加、更新、削除することもできます。例えば、新しいユーザーを作成するには、以下のようにします。
$user = new User; $user->name = 'John Doe'; $user->email = 'john@example.com'; $user->save();
モデルを使用してデータを更新するには、まず対象のレコードを取得し、その後プロパティを更新してsave()メソッドを呼び出します。
$user = User::find(1); $user->name = 'Jane Doe'; $user->save();
また、delete()メソッドを使用してレコードを削除することもできます。
$user = User::find(1); $user->delete();
リレーションシップの定義
Eloquentでは、テーブル間のリレーションシップを定義することもできます。例えば、1対多の関係を持つ場合はhasManyやbelongsToなどのメソッドを使用して定義します。
class Post extends Model { public function user() { return $this->belongsTo(User::class); } }
class User extends Model { public function posts() { return $this->hasMany(Post::class); } }
これらはEloquent ORMの基本的な機能の一部です。Eloquentには他にも多くの機能がありますが、これらの基本的な機能を理解することで、Laravelでのデータベース操作が容易になるでしょう。
コメント