1
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でデータベースを操作する方法

Last updated at Posted at 2024-01-24

Eloquentについて

Laravelフレームワークに組み込まれているデータベースを操作するための便利なツールのようなものです
具体的にはデータベースのテーブルと対応するモデルクラスを使ってデータベースを操作する認識

  • モデルとはテーブルの内容を定義したクラスのこと

  • Eloquentのメリット

    • モデル間の関連性、1対1、1対多、多対多などを簡単に定義し、操作できること
例 usersテーブルとfoodsテーブルが1対多の場合、それぞれのモデルクラスに下記を追記
// Userクラス 親
    public function foods()
{
    return $this->hasMany(Food::class);
}

//Foodクラス  子
    public function user()
    {
        return $this->belongsTo(User::class);
    }

Eloquentを使ったデータベースを操作する書き方

//ローカル環境で実際にphp artisan tinkerを使ってみてみます
// Userのidが1を取得
 $user = User::find(1);
// Userのidが1の人が持ってるfoodsの情報を全部取得する
 $foods = $user->foods;

 //下記のコードでも上記と同じ結果
 // $foods = User::find(1)->foods;
 // $foods = Food::where('user_id', 1)->get();

// Userのidが1の人が持ってるfoodsのinfoのデータが「test」かつlimit_dateが「2023-05-31」のレコードを取得
 $foods = $user->foods->where('info', 'test')
                             ->where('limit_date', '2023-05-31');

データベースを操作する方法はEloquent以外にもSQLクエリとクエリビルダがあるけど、リレーション周りの紐付けが面倒だと思うので自分はほぼ使ってません。特に複雑な関連構造のだと書くコードも面倒なものになる認識
だけどSQLの書き方を網羅してるとEloquentでもより明確にデータベースを操作できるのでEloquent書きながらでも裏でどんなSQL構文が処理されてるか意識するように習慣づけていきます!

1
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
1
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?