奏鸣曲 2 在同一列中显示 2 个字段



我显示奏鸣曲的列表形式。我有 2 个字段:名字、姓氏。我想在同一列中显示 2 个字段。

目前,我正在做

$listMapper->add('firstname', 'text', array('label' => 'First Name'))
           ->add('lastname', 'text', array('label' => 'Last Name'));

如何在不更改实体的情况下将 2 个字段合二为一

这是我的做法:

假设firstnamelastname是用户的属性。在您的实体类 User 中,只需添加:

/**
 * @return string
 */
public function getFullname()
{
    return sprintf("%s %s", $this->getFirstname(), $this->getLastname());
}

然后在您的管理员类中:

/**
 * {@inheritdoc}
 */
protected function configureListFields(ListMapper $listMapper)
{
  $listMapper
  ...
     ->add('fullname', null, array('label' => 'Full Name'))
}

您可以使用数据转换器。

或者(这对我来说似乎根本不是一个好主意)你可以做这样的事情:

  1. 添加一个非映射字段,将其称为全名。
  2. 添加一个PRE_SUBMIT表单事件侦听器,该侦听器将使用名字 + 姓氏填充全名
  3. 添加一个POST_SUBMIT表单事件侦听器,然后将全名解析回姓氏和名字
  4. 保留实体。

相关内容

  • 没有找到相关文章

最新更新