我不知道如何使用tiwg在数据库中为一个属性创建拖车输入,我希望在我的树枝文件中像这样here is what i want
我试图在表单生成器中添加相同的输入时间,但是它不起作用
for c in data.columns[1:]:
arr1 = data[c].values.astype(float).reshape(-1,1)
#array for next processing
print (arr1)
答案 0 :(得分:0)
据我所知,您有多种选择:
这绝对是干净的解决方案,因此比其他解决方案更受欢迎。本质上,您将获得的部分数据转换为数组/对象(moisAnne),并使用它填充多个字段。
更长且可能更好的描述:https://symfony.com/doc/current/form/data_transformers.html(实际上是以下说明的补充)
首先,您创建一个具有两个字段mois和anne的新表单类型MoisAnneType
。
然后您创建一个数据转换器,将您的moisAnne变成一个数组['mois' => $mois, 'anne' => $anne]
(当然也包括反转)。
将原始表单的新表单类型用于moisAnne字段
在模板中,您可能不必显式呈现它,但是您也可以使用form.moisAnne.mois
和form.moisAnne.anne
。
将getter和setter添加到使用数组进行通信的AppBundle\Entity\FicheFrais
中:
public function getExpandedMoisAnne() {
$mois = /** your code **/
$anne = /** your code **/
return ['mois' => $mois, 'anne' => $anne];
}
public function setExpandedMoisAnne(array $moisAnne) {
$this->moisAnne = $moisAnne['mois'].$moisAnne['anne']; // or whatever
}
然后,您可以在表单生成器中使用
->add('mois', null, [
'property_path' => 'expandedMoisAnne[mois]'
])
->add('anne', null, [
'property_path' => 'expandedMoisAnne[anne]'
])
无论如何,我相信此选项非常脏,我敢肯定,可以使用FormEvent
来添加不属于原始对象的未映射字段,并在事件侦听器/处理程序中进行数据转换。我强烈建议不要这样做。