我想创建一个可以在symfony2和symfony3中使用的新表单类型。问题是它扩展了实体表单类型,我找不到创建getParent()函数的常用方法,因为在symfony2中就像:
public function getParent()
{
return 'entity';
}
和symfony3:
public function getParent()
{
return EntityType::class;
}
有什么办法以常见的方式做到这一点,或者我需要创建两种不同的表单类型?
答案 0 :(得分:1)
您可以从内核中读取版本,并适当地返回父级:
use Symfony\Component\HttpKernel\Kernel;
public function getParent()
{
if (Kernel::MAJOR_VERSION > 2) {
return EntityType::class;
} else {
return 'entity';
}
}
答案 1 :(得分:0)
您可以检查Symfony 2.8中引入的getBlockPrefix()
类中的AbstractType
方法是否存在:
if (method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix')) {
return EntityType::class;
} else {
return 'entity';
}