Symfony2既存のデータベースからEntityを作る方法メモ


Symfony2既存のデータベースからEntityを作る方法メモ | Bamboo lath 日々の記録How to generate Entities from an Existing Database

上記を参考に行ったけど、Resource/config/doctrine以下のxmlの設定を
利用するようになってしまい、あとでライフサイクルコールバックが使いづらくなったので
Entity内にマッピングされるようにEntityを作成する。

Symfony2.3.2の状態
まずはデータベースを作って、app/config/parameters.ymlに設定をしておく。

バンドルは↓と仮定します。
./src/Devel/TestBundle/

まず最初にDoctrineにデータベースの内部を調べさせて、
「./src/Devel/TestBundle/Resources/config/doctrine」以下にXMLのメタデータファイルを作成する。

$ php app/console doctrine:mapping:convert xml ./src/Devel/TestBundle/Resources/config/doctrine --from-database --force

次にメタデータを元にデータベース情報をマッピングしたEntitiyを作成する

$ php app/console doctrine:mapping:import DevelTestBundle annotation

一応リレーションも設定された状態でEntityができるのでうれしい。

XMLのメタデータファイルを削除しておく※これが大事

$ rm src/Devel/TestBundle/Resource/config/doctrine -rf

上記で作成したEntityはセッター、ゲッターがないので以下のコマンドで追加する

$ php app/console doctrine:generate:entities DevelTestBundle --no-backup

この状態で↓のページのCRUD生成を行うと素敵な状態からはじめられる。
Symfony2 でアプリを作る基礎

リレーション設定した状態でCRUDを作成すると、
新規登録時に__toStringが無いって言われるので、
Entityに__toStringメソッドを追加して表示したい内容を
返すとgood。

コメントを残す

メールアドレスが公開されることはありません。