我一直在关注文档中关于创建自定义表单类型的文档: 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 本身的某种限制,因为它是无类型的..视线