PR
スポンサーリンク

LaravelのORM(Object-Relational Mapping)とは

LaravelのORM(Object-Relational Mapping)は、データベーステーブルをPHPのオブジェクトとして扱うためのツールです。これにより、SQLクエリを直接書かずにデータベースとやり取りすることができます。LaravelのORMはEloquentと呼ばれ、非常に強力で直感的なAPIを提供します。以LaravelのORMでの基本的な操作を解説します

モデルの作成: まず、Eloquentモデルを作成します。モデルは、データベーステーブルと対応するクラスです。

php artisan make:model User

これにより、app/Models/User.php に User モデルが作成されます。

モデルの定義: 作成されたモデルファイルで、データベーステーブルとの対応関係を定義します。通常、データベースのテーブル名と主キーは自動的に推測されますが、必要に応じて定義することもできます。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    // テーブル名の指定(不要な場合は省略可能)
    protected $table = 'users';

    // プライマリキーの指定(デフォルトは'id')
    protected $primaryKey = 'user_id';

    // タイムスタンプの自動更新を無効にする
    public $timestamps = false;
}

データの取得: Eloquentを使用してデータベースからデータを取得します。

use App\Models\User;

$users = User::all(); // 全てのユーザーを取得
$user = User::find(1); // IDが1のユーザーを取得

データの挿入: 新しいレコードをデータベースに挿入します。

$user = new User;
$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->save();

データの更新: 既存のレコードを更新します。

$user = User::find(1);
$user->name = 'Jane Doe';
$user->save();

データの削除: レコードをデータベースから削除します。

$user = User::find(1);
$user->delete();

リレーションの定義: Eloquentでは、テーブル間のリレーションシップを定義することもできます。例えば、User モデルと Post モデルが関連付けられている場合、次のように定義できます。

class User extends Model
{
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

これらの基本的な操作を通じて、LaravelのORMを使用してデータベースとやり取りすることができます。Eloquentは、直感的な構文と強力な機能を備えており、データベース操作をより簡潔で効率的に行うことができます。

コメント

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