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は、直感的な構文と強力な機能を備えており、データベース操作をより簡潔で効率的に行うことができます。
コメント