【laravel】Eloquentメソッド一覧|使い方使用方法まとめ

最終更新日

この記事では、Eloquentメソッド一覧|使い方使用方法についてまとめました。

Eloquentとは

公式

https://readouble.com/laravel/9.x/ja/eloquent.html

この記事で解説するEloquentメソッド一覧はこちらです。

Eloquentメソッドについての使い方と備考をまとめました。

詳しい使い方は以下の章に記載しています。

メソッド機能備考
all全て取得
find指定したキーの要素だけ取得
first指定したキーの最初の要素だけ取得
get指定したキーのすべての要素を取得all()と同じ。また他のメソッドと組み合わせられる
pluck指定したカラム(列)の要素を取得
where条件を指定して、フィルタをかけるgetなどとセットで使う
whereIn条件を指定する際に、【含まれる】値でフィルタをかけるgetなどとセットで使う
destroy主キー指定でレコード削除
deleat条件指定でレコード削除
create保存からreturnまで行える
countレコードの数を数える
updateレコード保存updated_atのカラムが更新される
saveレコード保存updated_atのカラムが更新されない

Eloquentについては、こちらです。

コントローラーでuseする

使用するモデルクラスをコントローラー上部にUse宣言をして使えるようにします。

Laravel9では、app>Modelsフォルダの中に作成したモデルファイルが作成されます。

作成するには、該当するプロジェクトに移動し

php artisan make:model ファイル名

詳しいモデルファイルの作り方配下の記事をご覧ください。

そのため、使用するモデルクラスを次のように記述します。

use App\Models\User;

以下でメソッドを紹介していきます。

Eloquentメソッド一覧

Eloquentメソッド一覧をまとめました。

  • allメソッド(全件取得)
  • findメソッド(主キーで指定したレコードを取得)
  • findOrFail(主キーで指定したレコードを取得)
  • whereメソッド(条件にマッチしたレコードを抽出)
  • whereIn(条件を指定する際に、【含まれる】値でフィルタをかける)
  • getメソッド(結果を取得)
  • firstメソッド(最初のレコードを取得)
  • pluck(指定したカラム(列)の要素を取得)
  • countメソッド(レコードの集計)
  • destroyメソッド(主キー指定でレコード削除)
  • deleteメソッド(条件指定でレコード削除)
  • create(保存からreturnまで行える)
  • update(レコード保存)
  • saveメソッド(レコードの追加)
  • ソフトデリート(論理削除)

allメソッド

allメソッドでは、全件取得モデルクラスに含まれる全ての要素を取得します。

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

 $users=User::all();
 return view('user.index', compact('users'));

ビューファイル

@foreach($users as $user)
  <table>
    <tr>
      <td>{{$user->name}}</td>
      <td>{{$user->email}}</td>
    </tr>
  </table>
@endforeach
解説

ビューファイルで変数を表示するにはblade構文の{{$変数名}}を使用します。

変数(コントローラーからcompact関数で渡されたもの)が複数ある場合は、@foreachを使うと、ひとつずつ取り出せます。

コードの解説

このコードでは、

  1. userクラスの要素を取得し$users変数に格納。
  2. ビューファイルにcompact関数を使い$users変数も受け渡す。

findメソッド

(主キーで指定したレコードを取得)

指定した要素を1個だけ取得したい場合、find()を使います。

コントローラー

app>Http>Controllers>該当コントローラーファイル

 $users=User::find(1);
 return view('user.index', compact('users'));

ビューファイル

@foreach($users as $user)
  <table>
    <tr>
      <td>{{$user->id}}</td>
    </tr>
  </table>
@endforeach
解設

このコードでは、

  1. userクラスに指定したテーブルの要素でidが1のものだけを取り出す。
  2. ビューファイルを表示するとき、$users変数も受け渡す。
findOrFailメソッドとの違い

一致するidが見つからなかった場合は、nullを返します。

findOrFailメソッド

(条件にマッチしたレコードを抽出)

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

ビューファイル

resouces>views>該当bladeファイル

findメソッドとの違い

一致するidが見つからなかった場合は、エラーを返します。

参考

https://nebikatsu.com/8589.html/

whereメソッド

(条件にマッチしたレコードを抽出)

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

ビューファイル

resouces>views>該当bladeファイル

whereIn

(条件を指定する際に、【含まれる】値でフィルタをかける)

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

ビューファイル

resouces>views>該当bladeファイル

getメソッド

getメソッドを使用すれば、テーブルの全ての要素を取得できます。

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

 $users=User::get(); 
 return view('user.index', compact('users'));

ビューファイル

resouces>views>該当bladeファイル

@foreach($users as $user)
  <table>
    <tr>
      <td>{{$user->name}}</td>
      <td>{{$user->email}}</td>
    </tr>
  </table>
@endforeach
解説

このコードでは、

  1. userクラスに指定したテーブルの要素を全て取得し、$users変数に格納。
  2. ビューファイルを表示するとき、$users変数も受け渡す。

firstメソッド

(最初のレコードを取得)

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

ビューファイル

resouces>views>該当bladeファイル

countメソッド

(レコードの集計)

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

ビューファイル

resouces>views>該当bladeファイル

destroyメソッド

(主キー指定でレコード削除)

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

ビューファイル

resouces>views>該当bladeファイル

deleteメソッド

(条件指定でレコード削除)

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

ビューファイル

resouces>views>該当bladeファイル

createメソッド

(保存からreturnまで行える)

モデルクラスから create メソッドを呼ぶことで、以下の一連の処理を一気に行ってくれます。

つまり、コントローラーからEloquent ORMでレコードのオブジェクトを呼び出す作業を省くことができます。

処理内容

インスタンスの作成

データの保存

作成したインスタンスをreturnする

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

ビューファイル

resouces>views>該当bladeファイル

updateメソッド

(レコード保存)

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

ビューファイル

resouces>views>該当bladeファイル

saveメソッドとの違い

※updated_atのカラムが更新される

saveメソッド

(レコードの追加)

コントローラーファイル

app>Http>Controllers>該当コントローラーファイル

ビューファイル

resouces>views>該当bladeファイル

updateメソッドとの違い

※updated_atのカラムが更新されない

ソフトデリート

(論理削除)

参考

https://readouble.com/laravel/master/ja/eloquent.html

https://biz.addisteria.com/how_to_get_data/

fem