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

时间:2015-02-19 09:08:43

标签: php forms symfony

我已经在互联网上搜索了一种方法,将多个字段连接成一个用于用户输入,然后在更新数据库之前分解。

我在一个教条实体拥有这些领域的项目上工作:

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

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

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

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

这些整数中的每一个都应在1到5之间。 实际上表单看起来像这样: 4 fields

我想要这样的事情: 1 field

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

您知道另一种自定义表单的方法吗?

1 个答案:

答案 0 :(得分:3)

您可以为您的班级添加新属性,例如

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"