Php Sonata Admin不带实体保存本机集合
我想在序列化数组中保存一些数据。以下Php Sonata Admin不带实体保存本机集合,php,symfony,sonata-admin,symfony-sonata,Php,Symfony,Sonata Admin,Symfony Sonata,我想在序列化数组中保存一些数据。以下 ->add('consumptionData', 'sonata_type_native_collection', array( 'label' => 'Verbrauchsdaten', 'entry_type' => ConsumptionDataType::class, 'allow_add' => true, 'allow_dele
->add('consumptionData', 'sonata_type_native_collection', array(
'label' => 'Verbrauchsdaten',
'entry_type' => ConsumptionDataType::class,
'allow_add' => true,
'allow_delete' => true,
'entry_options' => array(
'label' => false
)
))
与symfony配合很好,但与sonata admin配合,我得到
通过关系“AppBundle\entity\Document\meterPoints”找到了一个新实体,该关系未配置为级联实体的持久化操作
我如何告诉sonata它应该是一个序列化数组而不是一个实体?如果您想将数据保存为数组,您可以将其“强制转换”为实体中字段所需的getter类型 若它破坏了代码的逻辑,那个么可以为“假”实体添加一些新的getter/setter方法。当为表单字段名指定getter和setter时,即使实体中不存在具有此名称的字段,表单字段名也是合法的 因此,您可以在生成器中编写如下内容:
->add('consumptionDataForArray', 'sonata_type_native_collection', [...]))
在你的实体中是这样的:
public function setConsumptionDataForArray($data)
{
// change your data here as you need
$this->consumptionData = $neededData;
}
public function getConsumptionDataForArray()
{
// cast your data back to array
return $castedBackData;
}
希望这是您问题的答案。如果您想将数据保存为数组,您可以将其“强制转换”为实体中字段所需的getter类型 若它破坏了代码的逻辑,那个么可以为“假”实体添加一些新的getter/setter方法。当为表单字段名指定getter和setter时,即使实体中不存在具有此名称的字段,表单字段名也是合法的 因此,您可以在生成器中编写如下内容:
->add('consumptionDataForArray', 'sonata_type_native_collection', [...]))
在你的实体中是这样的:
public function setConsumptionDataForArray($data)
{
// change your data here as you need
$this->consumptionData = $neededData;
}
public function getConsumptionDataForArray()
{
// cast your data back to array
return $castedBackData;
}
希望这是您问题的答案。IMO一般来说:这不是奏鸣曲问题,奏鸣曲类型\u本地\u集合字段类型扩展了。关于您发布的信息:错误与meterPoints有关,但sonata admin定义与consumptionData有关。如果您需要帮助,请提供所有必要且正确的代码示例。IMO一般来说:这不是sonata的问题,sonata_type_native_收集字段类型扩展了。关于您发布的信息:错误与meterPoints有关,但sonata管理员定义与consumptionData有关。如果您需要帮助,请提供所有必要且正确的代码示例。