FormType 中的实体 属性 定义
Entity property definitions in FormType
有没有办法在 Formtype 中获取实体 属性 定义?
我问它,因为我想将 maxlength 集成到我的表单类型中,但不想两次定义 maxlength(一次在 Entity 中,一次在 FormType 中)
目前我的定义是
实体
/**
* @ORM\Column(type="string", length=25, nullable=true)
* @Assert\length(
* max = 25,
* maxMessage = "text.zu_lang"
* )
* @Assert\NotBlank()
*/
private $ident;
表单类型:
->add('ident', TextType::class, [
'label' => 'ident.name',
'help' => 'ident.help',
'attr' => [
'maxlength' => 25
]
])
这可能吗?我知道,我可以定义常量并通过 FormType 中的 $options['data_class'] 调用它们,但后来我什至必须定义最大长度两次(仅在 Entity 中使用这种方式)
一旦你的实体中有了验证元数据,Symfony 就可以尝试猜测一些验证规则和字段的类型。您所要做的就是从您的字段创建中省略 field type
和 maxlength
规则:
->add('ident', null, [
'label' => 'ident.name',
'help' => 'ident.help'
])
这样,Symfony 将在实体内部寻找一个名为 ident
的 属性 并检查其注释说:我找到了一个具有验证规则 NotBlank
的 string
和 Length
,所以我将创建一个 TextType
字段,即 required
和 maxlength = 25
。
您可以在 Symfony 的文档中获得更多详细信息:Field Type Options Guessing
有没有办法在 Formtype 中获取实体 属性 定义?
我问它,因为我想将 maxlength 集成到我的表单类型中,但不想两次定义 maxlength(一次在 Entity 中,一次在 FormType 中)
目前我的定义是
实体
/**
* @ORM\Column(type="string", length=25, nullable=true)
* @Assert\length(
* max = 25,
* maxMessage = "text.zu_lang"
* )
* @Assert\NotBlank()
*/
private $ident;
表单类型:
->add('ident', TextType::class, [
'label' => 'ident.name',
'help' => 'ident.help',
'attr' => [
'maxlength' => 25
]
])
这可能吗?我知道,我可以定义常量并通过 FormType 中的 $options['data_class'] 调用它们,但后来我什至必须定义最大长度两次(仅在 Entity 中使用这种方式)
一旦你的实体中有了验证元数据,Symfony 就可以尝试猜测一些验证规则和字段的类型。您所要做的就是从您的字段创建中省略 field type
和 maxlength
规则:
->add('ident', null, [
'label' => 'ident.name',
'help' => 'ident.help'
])
这样,Symfony 将在实体内部寻找一个名为 ident
的 属性 并检查其注释说:我找到了一个具有验证规则 NotBlank
的 string
和 Length
,所以我将创建一个 TextType
字段,即 required
和 maxlength = 25
。
您可以在 Symfony 的文档中获得更多详细信息:Field Type Options Guessing