尝试扩展SubmitType
:
class ValidateType extends AbstractType
{
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'label' => 'Valider',
'mapped' => false,
'attr' => array(
'class' => 'btn-lg btn-success btn-block',
),
));
}
public function getParent()
{
return SubmitType::class;
}
}
用于映射表格
class SecurityFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// ...
->add('validate', ValidateType::class, array('mapped' => false))
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Item::class
));
}
}
告诉我
属性“验证”和方法之一“getValidate()”,“validate()”,“isValidate()”,“hasValidate()”,“__ get()”都不存在并且在课堂上具有公共访问权限“的appbundle \实体\物品”。
我做错了吗?
有没有办法扩展SubmitType
?
答案 0 :(得分:1)
在这种情况下,您无需使用mapped
属性。相反,请使用界面SubmitButtonTypeInterface
<强> ValidateType:强>
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
class ValidateType extends AbstractType implements SubmitButtonTypeInterface
{
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'label' => 'Valider',
'attr' => [
'class' => 'btn-lg btn-success btn-block',
],
]);
}
public function getParent()
{
return SubmitType::class;
}
}
<强> SecurityFormType:强>
$builder
// ...
->add('validate', ValidateType::class)
答案 1 :(得分:0)
让您的表单类型类实现SubmitButtonTypeInterface,以便使用SubmitButtonBuilder代替常规FormBuilder。