カテゴリ: Symfony 更新日: 2025/12/15

Symfony Doctrine ORMのデータ登録・更新・削除を完全ガイド!初心者でもわかる基本操作

Symfonyでデータを登録・更新・削除する基本操作
Symfonyでデータを登録・更新・削除する基本操作

先生と生徒の会話形式で理解しよう

生徒

「Symfonyでデータベースに情報を登録したり、更新したり、削除したりする仕組みってどうなっているんですか?」

先生

「Symfonyでは、Doctrine ORMという仕組みを使うと、難しいSQLを書かなくてもデータベースの操作ができます。」

生徒

「SQLを書かなくても、どうやってデータを保存したり変更したりするんですか?」

先生

「Doctrine ORMが、PHPのオブジェクトをデータベースの情報として保存してくれるからだよ。今から基本操作をわかりやすく説明していこう。」

1. Doctrine ORMとは?初心者にもわかる仕組み

1. Doctrine ORMとは?初心者にもわかる仕組み
1. Doctrine ORMとは?初心者にもわかる仕組み

Symfonyでデータベースを使うときに欠かせないのがDoctrine ORMObject Relational Mapping(オブジェクト・リレーショナル・マッピング)の略で、プログラム内のオブジェクトとデータベースのテーブルを自動的に対応させてくれる仕組みです。たとえば、人を表す「User」クラスを作ると、そのデータを自動でデータベースのテーブルに保存できるようになるイメージです。

プログラミング未経験の人にわかりやすく言うと、Doctrine ORMは「メモ帳の内容を自動でノートに書き写してくれるロボット」のような存在です。開発者はメモ帳(PHPのオブジェクト)に書くだけで、ノート(データベース)に記録する作業はロボット(Doctrine)がやってくれます。

2. データ登録(INSERT)をSymfony Doctrine ORMで行う方法

2. データ登録(INSERT)をSymfony Doctrine ORMで行う方法
2. データ登録(INSERT)をSymfony Doctrine ORMで行う方法

Symfonyで新しいデータを登録することを永続化(persist)と呼びます。これはDoctrine ORMが用意している機能で、「このオブジェクトをデータベースに保存してね」と指示するイメージです。その後、flushという処理を実行することで、実際にデータベースに反映されます。

■ データ登録のサンプルコード


$user = new User();
$user->setName('Taro');
$user->setEmail('taro@example.com');

$entityManager->persist($user);
$entityManager->flush();

persistを見ると難しそうに見えますが、やっていることは「保存したい情報を預ける」だけです。そして最後にflushをすると、「預かった内容を本当に保存しますよ」とデータベースへ書き込まれます。初心者でも、操作の流れを覚えると簡単に感じられるようになります。

3. データ更新(UPDATE)をSymfony Doctrine ORMで行う方法

3. データ更新(UPDATE)をSymfony Doctrine ORMで行う方法
3. データ更新(UPDATE)をSymfony Doctrine ORMで行う方法

更新とは、すでに保存されているデータの内容を変更することです。Symfonyでは一度データを取り出して値を変更し、最後にflushを実行するだけで変更が自動的にデータベースに反映されます。

ここでも、Doctrineが裏側でSQLを組み立ててくれるため、初心者でも安全にデータ更新ができます。

■ データ更新のサンプルコード


$user = $userRepository->find(1);
$user->setName('Hanako');
$entityManager->flush();

ここでポイントとなるのは、更新ではpersistが不要だということです。Doctrineが「このデータは既に保存済みだ」と覚えているため、値を変更してflushするだけで自動的にUPDATE文が実行されます。

4. データ削除(DELETE)をSymfony Doctrine ORMで行う方法

4. データ削除(DELETE)をSymfony Doctrine ORMで行う方法
4. データ削除(DELETE)をSymfony Doctrine ORMで行う方法

データ削除はもっと簡単です。削除したいデータを取得して、remove→flushするだけで、裏側では自動的にDELETE文が実行されます。SymfonyとDoctrine ORMは、複雑なSQLを意識せずに操作できるよう設計されています。

■ データ削除のサンプルコード


$user = $userRepository->find(1);
$entityManager->remove($user);
$entityManager->flush();

初心者の方は、「removeすると本当に消えてしまうの?」と不安になるかもしれませんが、実際に削除が行われるのはflushを実行したときです。flush前であれば取り消すことも可能なので、安心して操作できます。

5. Symfony Doctrine ORMの操作が便利な理由

5. Symfony Doctrine ORMの操作が便利な理由
5. Symfony Doctrine ORMの操作が便利な理由

Doctrine ORMを使うと、SQLの書き方を知らなくてもデータの操作ができます。これは多くのSymfony初心者にとって大きなメリットです。たとえば登録・更新・削除などのよく行う操作を、毎回SQLを書く必要がなく、PHPのコードとして書けるため理解しやすいのです。

さらに、Doctrine ORMはデータベースに依存しにくい設計になっており、MySQL、PostgreSQL、SQLiteなど複数のデータベースでも同じ書き方で動かすことができます。初心者がSymfonyでWebアプリケーションを作るとき、大きな助けになる技術です。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.7
Java&Spring記事人気No7
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)
No.8
Java&Spring記事人気No8
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)