0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel Eloquent: 効率的なデータベース操作のためのORM

Posted at

今回はLaravelを学習して特に大事だと考えたORMについてアウトプットしていきたいと思います。

LaravelはPHPのフレームワークであり、その中でもEloquent ORM(Object-Relational Mapping)はデータベース操作を簡単にするためのツールです。この記事では、Eloquentの基本操作について学んだことをアウトプットしようと思います。

なぜEloquentを使うのか?

Eloquentを使う理由は多岐にわたりますが、以下の点が主なメリットです。

1:シンプルで直感的なAPI: EloquentのAPIは非常にシンプルで直感的です。クエリの構築やデータ操作が容易で、コードの可読性が向上します。

2:オブジェクト指向のデータベース操作: Eloquentはオブジェクト指向のアプローチを採用しており、データベーステーブルをクラスとして扱うことができます。これにより、データベース操作がオブジェクト指向プログラミングの概念と一致し、開発者にとって扱いやすくなります。

3:リレーションシップのサポート: Eloquentは、データベース間のリレーションシップ(1対多、多対多など)を簡単に定義し操作する機能を提供します。これにより、複雑なデータ構造でも直感的に扱えます。

4:自動タイムスタンプ: Eloquentはデフォルトでcreated_atとupdated_atというタイムスタンプを自動的に管理します。これにより、レコードの作成日時や更新日時を手動で管理する必要がありません。

1. モデルの作成

Eloquentを使うためには、まずモデルを作成する必要があります。モデルはデータベースのテーブルに対応し、データベース操作を簡単にします。

モデルの作成

次のコマンドを使用してモデルを作成します。

php artisan make:model Article

これにより、app/ModelsディレクトリにArticleモデルが作成されます。

モデルの定義

モデルは次のように定義されます。ここでは、テーブル名やタイムスタンプの設定を行います。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    use HasFactory;

    protected $table = 'articles';
    public $timestamps = true;

    protected $fillable = ['title', 'content'];
}

2. データの操作

データの取得

全てのデータを取得するには、allメソッドを使用します。

$articles = Article::all();

特定のデータを取得するには、findメソッドを使用します。

$article = Article::find(1);

データの作成

新しいデータを作成するには、createメソッドを使用します。事前にモデルで$fillableプロパティを設定しておく必要があります。

Article::create([
    'title' => '新しい記事',
    'content' => 'この記事の内容'
]);

データの更新

既存のデータを更新するには、まずデータを取得し、その後にsaveメソッドを使用します

$article = Article::find(1);
$article->title = '更新された記事タイトル';
$article->save();

データの削除

データを削除するには、deleteメソッドを使用します。

$article = Article::find(1);
$article->delete();

まとめ

Eloquent ORMを使うことで、Laravelでのデータベース操作が非常に簡単になります。モデルの作成からデータの取得、作成、更新、削除まで、基本的な操作をマスターすることで、効率的にデータベースを扱うことができるようになりました。Eloquentのシンプルで直感的なオブジェクト指向のデータベース操作、リレーションシップのサポート、自動タイムスタンプ管理などの利点を活用して、より効果的なアプリケーション開発できると思いました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?