Php 条令-按数组键持久化

Php 条令-按数组键持久化,php,doctrine,symfony,Php,Doctrine,Symfony,我收到一个JSON文件并将其传输到一个数组中。现在,我希望将数组(并非所有数据都在其中设置)添加到我的类中。如何在不生成“null”字段的情况下获取此字段 我的阵列: $setData = array( 'title' => $getDAta['title'], 'subtitle' => $getData['subtitle'], 'description'

我收到一个JSON文件并将其传输到一个数组中。现在,我希望将数组(并非所有数据都在其中设置)添加到我的类中。如何在不生成“null”字段的情况下获取此字段

我的阵列:

$setData = array(
            'title'             => $getDAta['title'],
            'subtitle'          => $getData['subtitle'],
            'description'       => $getData['description'],
            'participants'      => $getData['participants'],
            'teachingUnits'     => $getData['teachingUnits'],
            'price'             => $getData['price'],
            'zipcode'           => $getData['zipcode'],
            'street'            => $getData['street'],
            'city'              => $getData['city'],
            'externalSeminarId' => $getData['extSerminarId'],
            'topic'             => $CategoryTopic,
            'partner'           => $partner,
            'seminarDate'       => $SeminarDateArray,
        );
这些键与doctrine类中的列进行比较

条令类的简单版本:

/**
 * @var string
 *
 * @ORM\Column(name="title", type="string", length=255, nullable=false)
 * @Assert\NotBlank()
 * @Assert\Length(max=255)
 * @Assert\Type("string")
 */
private $title;
/** and so on with subtitle ....*/
目前我使用的是“如果”语句,但这看起来并不明智

例如:

if(isset($partner)){
        $SeminarOffer->setPartner($partner);
    }

您的密钥必须与实体中的属性相同,否则将无法使用:

foreach ($setData as $key => $data){
                if($data != null)){
                    $func = 'set'.ucfirst($key);
                    $SeminarOffer->$func($data);
                }
            }

这应该根据您的数组设置数据,我没有尝试,因此请尝试并给出反馈。

您的密钥必须与实体中的属性相同,否则将无法工作:

foreach ($setData as $key => $data){
                if($data != null)){
                    $func = 'set'.ucfirst($key);
                    $SeminarOffer->$func($data);
                }
            }
这应该根据您的阵列设置数据,我没有尝试,所以请尝试并给出反馈