laravel_Eloquent ORM

08Eloquent ORM

Eloquent ORMとは?

Eloquent ORM(Object-Relational Mapping)は、Laravelに組み込まれたデータベース操作のための機能です。
データベースのテーブルをモデルとして扱い、オブジェクト指向的にデータを操作できます。

では早速Eloquent ORMについて学んでいきましょう。

全データを取得

$users = User::all();

解説:

  • allメソッドはテーブル内のすべてのレコードを取得します。
  • 結果はコレクション形式で返されるため、ループなどで操作が可能です。

条件付き取得

$users = User::where('email', 'example@example.com')->get();

解説:

  • whereメソッドを使って条件を指定します。
  • getメソッドで結果を取得します。
  • この例では、emailexample@example.comのレコードを取得します。

データの作成

新規レコードを保存

$user = new User();
$user->name = '山田 太郎';
$user->email = 'yamada@example.com';
$user->save();




解説:

  • newを使って新しいモデルインスタンスを作成します。
  • 属性を指定し、saveメソッドでデータベースに保存します。

createを使用

User::create([
    'name' => '山田 太郎',
    'email' => 'yamada@example.com',
]);




解説:

  • createメソッドを使えば、複数の属性を一度に指定可能です。
  • $fillableプロパティをモデルで定義している必要があります。

データの更新

レコードの更新

$user = User::find(1);
$user->name = '山田 太郎';
$user->save();

解説:

  • findメソッドで特定のIDのレコードを取得し、属性を変更します。
  • 変更後、saveメソッドで更新を保存します。

データの削除

レコードの削除

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

解説:

  • deleteメソッドを使ってレコードを削除します。
  • レコードが完全に削除されます(後述するソフトデリートを有効にする場合は別)。

4. リレーション

1対多リレーション

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

解説:

  • このメソッドはUserモデルから関連するPostモデルを取得します。
  • hasManyメソッドは「1対多」の関係を表します。

リレーションを利用したデータ取得

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

解説:

  • リレーションメソッドを呼び出すことで、関連するデータを簡単に取得できます。
  • この例では、特定のユーザーが持つ投稿一覧を取得します。

投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です