symfony1.2のAdmin Generatorはformフレームワークベース
formフレームワークになったおかげで格段に柔軟性がアップしました。
公式のブログ記事の例を簡単に解説します。
schema.ymlで以下のようなモデルを定義。
propel: demo_article: id: ~ author_id: { type: integer, foreignReference: id, foreignTable: demo_author, onDelete: cascade, onUpdate: cascade, required: true } status: { type: varchar(255), required: true } title: { type: varchar(255), required: true } content: { type: longvarchar, required: true } is_on_homepage: boolean published_at: timestamp created_at: timestamp updated_at: timestamp demo_category: id: ~ name: varchar(255) demo_author: id: ~ name: varchar(255) demo_tag: id: ~ name: varchar(255) demo_tag_article: tag_id: { type: integer, primaryKey: true, foreignReference: id, foreignTable: demo_tag, onDelete: cascade, onUpdate: cascade, required: true } article_id: { type: integer, primaryKey: true, foreignReference: id, foreignTable: demo_article, onDelete: cascade, onUpdate: cascade, required: true } demo_category_article: category_id: { type: integer, primaryKey: true, foreignReference: id, foreignTable: demo_category, onDelete: cascade, onUpdate: cascade, required: true } article_id: { type: integer, primaryKey: true, foreignReference: id, foreignTable: demo_article, onDelete: cascade, onUpdate: cascade, required: true }
バックエンドアプリを作成
> php symfony generate:app backend
settings.ymlのescaping_strategyをonにする。
以下のコマンドを実行
symfony propel:generate-admin backend DemoArticle --module=article
symfony propel:generate-forms
symfony propel:generate-filters
さらに
symfony propel:generate-admin backend DemoCategory --module=category
とりあえずこれで作成完了