LaravelのEloquentでのCRUD操作【現役エンジニアが解説】

PROGRAM

今回は、LaravelのEloquentでのCRUD操作について、簡単に解説していきます。

Create

レコードの追加はmodelのcreateメソッドで可能です。

User::create([
	'name' => 'hoge',
	'email' => 'example@example.com',
	'password' => Hash::make('abc123')
]);

また、modelのsaveメソッドでも追加することができます。

$user = new User();
$user->name = 'hoge';
$user->email = 'example@example.com';
$user->password = Hash::make('abc123');
$user->save();

参考までにパスワードを保存する場合はHashクラスのmakeメソッド等でハッシュ化して保存することが一般的です。

Read

レコードの取得はmodelのfindメソッドで行えます。

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

もちろんmodelのwhereメソッドで複数件の絞り込みもできます。

$user = User::where('name','=','hoge')->get();

ここでは1件だけの場合にfirstメソッド、複数の場合にgetメソッドを使っています。

Update

レコードの更新はまずmodelのfindメソッドで対象レコードを絞り込みます。

$user = User::find(1);
$user->name = 'hoge';
$user->email = 'example@example.com';
$user->password = Hash::make($request->password);
$user->save();

その後、上記のように値をセットし、modelのsaveメソッドで保存することができます。

user::where('email', '=', 'example@example.com')->update([
	'name' => 'hoge'
]);

modelのwhereメソッドとupdateメソッドを使って複数のレコードの更新を行うこともできます。

Delete

レコードの削除もmodelのfindメソッドで対象レコードを絞ります。

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

その上でmodelのdeleteメソッドを使うことでレコードの削除が可能です。

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

上記のコードのように、modelのwhereメソッドを使って、複数のレコードの削除もできます。