2011-01-12 18 views
1

"doctrine:generate-admin"タスクを使用しました。すべて動作していますが、Formクラス自身でそれらの設定を解除するのではなく、generator.ymlファイルを使用していくつかのフォームフィールドの設定を解除します。 "updated_at"のようなものは、オブジェクトが更新されたときに保存する必要がありますが、フォームに表示させたくないため、フォームの検証エラーが発生しません。symfony 1.4管理者ジェネレータの設定解除

これは可能ですか?私はこれを可能にするジェネレータのリファレンスページで何も見つけることができません。フィールド設定はラベル/資格情報などを変更できるようにしか見えません。

答えて

7

表示したいフィールドを選択するだけです:

config: 
    form: 
    display: 
     Content: [title, body, author] 
     Admin: [is_published, expires_at] 

参照ページで見つからなかったのは奇妙です。ここに行く:http://www.symfony-project.org/reference/1_4/en/06-Admin-Generator(フォーム - >表示に移動する)。

編集:

管理・ジェネレータは、レンダリングするフィールドのリストを取得するsfModelGeneratorConfiguration :: getFormFields()メソッドを使用しています。 'display'オプションを指定しない場合は、すべてのフィールドだけが必要です。

フィールドはすべてレンダリングされているのか、その一部だけですか?それが遅い場合は、あなたのフォームで何かがオーバーロードされているかもしれません(例えばconfigure()メソッド)。

1

を管理モジュールの設定/にgenerator.yml内のフィールドを隠してから、上述のように、あなたは関連するフォームでそれらの設定を解除する必要があります。あなたはcreated_atとを非表示にするTimestampableモデルの分野updated_atの、

public function configure() 
{ 
    unset($this['created_at'],$this['updated_at']); 
} 
+0

へのlib /フォーム/ドクトリン/ ModelForm.class.phpでのconfigure()メソッドを変更する$をしたいのであれば、これはオブジェクトコンテキストの配列ではありません。 –

+0

$ thisへの参照は、特にフォームに関して、Symfony 1.xのドキュメント全体の配列として見付かっています。 – Webler

+0

配列として$ thisを使用しようとすると、「PHP致命的なエラー:配列としてxxx型のオブジェクトを使用できません」というメッセージが表示されます。実行するコードをいくつか共有できますか? –

関連する問題