ドキュメントに記載されているカスタムフォームタイプの作成に関するドキュメントに従っています: http://symfony.com/doc/master/cookbook/form/create_custom_field_type.html#using-the-field-type
与えられた例の GenderType を持っているので、新しい FormType で作業しているエンティティを「ポン引き」したいと思います。
class Person {
const GENDER_MALE = "m";
const GENDER_FEMALE = "f";
private $gender;
....
/* generated getter/setter */
.....
public function getGenderAsText()
{
return $this->getGender() == self::GENDER_MALE?"male":"female";
}
}
私の質問は、おそらく誰かに良いアドバイスがあります.. .私のモデルで魅力のようなフォームを選択するGenderTypeの優雅さをどのように組み合わせるか、テンプレートなどでの使用を容易にする.. ?
アップデート
Alex は、自作の性別小枝拡張機能を使用して特定のフィールドを表示する方法を指摘しました。
特にフィールド {{ item.gender|gender }} で拡張子を呼び出すと、これは魅力のように機能します
共通フィールドに継承を使用して、たくさんのオブジェクトを持っていますが、各クラスに固有のデータがたくさんあります。すべてのプロパティを抽出し、それらをテンプレートに渡し、TwigExtension がレンダリングを処理するロジックをいくつか書きました。
public function dynamicContractFilter($value)
{
// handle DateTime
if ($value instanceof \DateTime) {
return $value->format('d.m.Y');
}
....
} elseif (is_bool($value)) {
return $value ? 'yes' : 'no';
} else {
return $value; // plain string
}
}
それが単純な文字列/整数なのか「GenderTypedField」なのか判断できません..
型がないので、これはPHP自体のある種の制限だと思います..サイト