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。