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有关。如果您需要帮助,请提供所有必要且正确的代码示例。