Symfony3:是否可以更改表单的名称?

Symfony3: is it possible to change the name of a form?

使用 Symfony 2.7,您可以使用 getName()
方法在 EntityType class 中自定义表单名称 现在已弃用。 Symfony 3.0 还有其他方法吗?
我有自定义原型 entry_rows 用于我需要以不同形式使用的集合。
由于行的名称基于表单的名称,因此我需要更改后者以便将它们用于不同的表单。

根据表单的构建方式,可以使用不同的方法来设置表单名称。

如果您通过 $this->createForm(CustomType::class) 创建表单:

$formFactory = $this->get('form.factory');
$form = $formFactory->createNamed('custom_form_name', CustomType::class);

如果您直接通过 $this->createFormBuilder() 从控制器构建表单:

$formFactory = $this->get('form.factory');
$form = $formFactory->createNamedBuilder('custom_form_name', CustomType::class);

查看 FormFactory and FormBuilder API 了解更多信息。

您应该实施 getBlockPrefix 方法,而不是迁移指南 here 中所述的 getName

例如:

/**
 * Returns the prefix of the template block name for this type.
 *
 * The block prefix defaults to the underscored short class name with
 * the "Type" suffix removed (e.g. "UserProfileType" => "user_profile").
 *
 * @return string The prefix of the template block name
 */
public function getBlockPrefix()
{
    return "form_name";
}

希望对您有所帮助

你可以试试,去掉字段名的前缀

public function getBlockPrefix()
{
    return null;
}