1

「doctrine:generate-admin」タスクを使用しました。すべてが機能していますが、Formクラス自体で設定を解除するのではなく、generator.ymlファイルを使用していくつかのフォームフィールドを設定解除したいと考えています。「updated_at」のようなものは、オブジェクトが更新されたときにのみ保存する必要がありますが、フォームに表示したくないため、フォームの検証エラーは発生しません。

これは可能ですか?これを可能にするジェネレーターの参照ページには何も見つかりません。フィールド構成では、ラベル/資格情報などの変更のみが許可されているようです。

4

3 に答える 3

6

表示するフィールドを選択するだけです。

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

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

編集:

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

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

于 2011-01-12T15:39:47.980 に答える
2

これを試して:

config:
  list:
    hide: [created_at, updated_at]

http://www.symfony-project.org/reference/1_4/en/06-Admin-Generator#chapter_06_sub_hide

于 2011-01-12T17:04:19.197 に答える
1

上記のように、管理モジュールの config/generator.yml のフィールドを非表示にすることとは別に、関連するフォームでそれらを設定解除する必要があります。したがって、Timestampable モデルの created_at フィールドと updated_at フィールドを隠したい場合は、lib/form/doctrine/ModelForm.class.php の configure() メソッドを次のように変更します。

public function configure()
{
    unset($this['created_at'],$this['updated_at']);
}
于 2012-10-04T20:42:31.940 に答える