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)的验证在您设置它们时仍然有效,因此如果任何属性无效,它将在刷新时失败