问题描述
我有一个实体,可以通过以下字段向多个用户发送电子邮件:
/**
* @ORM\Column(type="text")
*/
protected $message;
/**
* @ORM\Column(type="array")
*/
protected $variables;
该消息包含我保存在$variables
数组中的树枝变量。我正在使用CollectionType
渲染每个变量并设置其数据。可行。
我目前遇到的问题是,如果每个变量为空,我将无法对其进行验证。我之所以这样添加它们,是因为我首先需要保存该消息,然后再检查其中是否包含树枝变量:
$builder->addEventListener(FormEvents::POST_SET_DATA,function (FormEvent $event) {
/** @var Message $data */
$data = $event->getData();
$form = $event->getForm();
if (!empty($data->getVariables())) {
$form->add('variables',CollectionType::class,[
'label' => false,'entry_type' => TextType::class,'constraints' => [
new NotBlank()
]
]);
}
}
我发现了许多不同的解决方案,但它们都是针对使用不同实体的CollectionType的。就我而言,我只是保存数组,所以如果我的{{ first_name }}
中有$message
,我的a:1:{s:10:"first_name";s:0:"";}
中也将有$variables
。我需要确保first_name
在初始创建后不为空。
编辑:
在我设法阻止提交表单的实体中使用回调约束。现在的问题只是视觉上的。当前,错误消息出现在表格上方。我正在寻找一种方法来显示哪些字段完全为空,并且需要一个值。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)