Php Symfony 2:如何在表单中将多个字段连接成一个字段

Php Symfony 2:如何在表单中将多个字段连接成一个字段,php,forms,symfony,Php,Forms,Symfony,我在互联网上搜索,想找到一种方法,将多个字段连接成一个字段供用户输入,然后在更新数据库之前进行分解 我在一个项目中工作,其中条令实体具有以下字段: /** * @var integer */ private $disponibilite; /** * @var integer */ private $integrite; /** * @var integer */ private $confidentialite; /** * @var integer */ private

我在互联网上搜索,想找到一种方法,将多个字段连接成一个字段供用户输入,然后在更新数据库之前进行分解

我在一个项目中工作,其中条令实体具有以下字段:

/**
 * @var integer
 */
private $disponibilite;

/**
 * @var integer
 */
private $integrite;

/**
 * @var integer
 */
private $confidentialite;

/**
 * @var integer
 */
private $preuve;
这些整数中的每一个都应该介于1和5之间。 实际上,表单如下所示:

我想要这样的东西:

我注意到Symfony提供了一个可以解决我问题的工具:数据转换器。但我看不出他们怎么能从一个字段在数据库中插入4个值


您知道自定义表单的其他方法吗?

您可以向类中添加新属性,例如

private $singleField

/* a getter that builds up the unified value */    
public function getSingleField(){
  return $this->disponibilite.$this->integrite.$this->confidentialite.$this->preuve
} 


/* a setter that sets the properties by unified value */
public function setSingleField($value){

 $arr=str_split((string)$value);
 if(is_array($arr) && count($arr) == 3){

    $this->disponibilite = $arr[0];
    $this->integrite = $arr[1];
    ...

 }else{
   return false
 }

}

在formbuilder中,您只需添加属性“singleField”

我只需选择映射到伪属性的文本字段,然后使用setProperty分割字符串并设置正确的属性,使用getProperty将4个属性连接成一个字符串如何验证数据?我在YAML中进行了验证,但Symfony无法识别singleField属性。您可以在setSingleField函数中进行验证,所有属性(例如Disponsibilite)的验证在您设置它们时仍然有效,因此如果任何属性无效,它将在刷新时失败