PR
スポンサーリンク

Eloquent ORM(Object-Relational Mapping)について

※¥はバックスラッシュに置き換えてください。

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でのデータベース操作が容易になるでしょう。

コメント

タイトルとURLをコピーしました