3

クラスの注釈から自動的にフォームを作成できるようにするメカニズムに取り組んでいます。たとえば、いくつかのカスタム アノテーションを含む "News" というクラスがあります。

/**
 * @Admin\Form(name="news")
 */
class News
{
    /**
     *
     * @Admin\Field(name="title", type="text")
     */
    private $title;

} 

私の目標は、「フォーム」アノテーションを持つクラスが存在するかどうかを確認し、このクラス フィールドに基づいてフォームを作成するメカニズムを作成することです。

このメカニズムをどこに置くべきですか?最初に FormFactory を上書きすることを考えていましたが、そのようなことにはもっと良い場所があると思います。

4

2 に答える 2

3

あなたが求めていることを行うバンドルがすでにあります: http://knpbundles.com/FlintLabs/FormMetadataBundle

ただし、自分で作成したい場合は、バンドルを作成し、その中で doctrine2 仕様に基づいてカスタム アノテーション ドライバーを作成する必要があります (Symfony はアノテーションの読み取りに Doctrine を使用するため)。

于 2012-06-24T01:17:20.437 に答える
0

Symfony2 では、 "Form Type Extensions"を使用して、既存のフォーム フィールドに機能を追加できます。

拡張機能をすべてのフィールド タイプに適用するには、メソッドの戻り値getExtendedType()を「フォーム」に設定します。

public function getExtendedType()
{
    return 'form';
}

フォーム拡張機能から注釈を取得する方法がまだわかりません。

于 2013-03-07T21:04:31.697 に答える