0

我有功能

private function updateCharacters($oApiKeyInfo) // argument is base entity
{
    $aXmlCharacter = $this->fXml->getXmlRowset($this->oXml, 'row');
    // insert new
    foreach ($aXmlCharacter as $oXmlCharacter)
    {
        $loopData = $this->fXml->getXmlAttributesAsArray($oXmlCharacter);

        $oApiKeyInfoCharacters = new apiKeyInfoCharacters();

        $oApiKeyInfoCharacters
                ->setKeyID($this->keyID)
                ->setCharacterID($loopData['characterID'])
                ->setCharacterName($loopData['characterName'])
                ->setCorporationID($loopData['corporationID'])
                ->setCorporationName($loopData['corporationName'])
                ->set_apiKeyInfo_byKeyID($oApiKeyInfo);


        $this->em->persist($oApiKeyInfoCharacters);
    }

// $this->em->flush() is in main (public) function
}

但是,它会创建重复项......我希望在 db 中只有 $aXmlCharacter (数组)中的条目,其他条目必须被删除

现在上面的代码只是添加新条目,但我需要删除以前的

有人可以帮忙处理吗?并请展示工作示例

4

1 回答 1

1

重复条目我看不到任何唯一性的定义。
如文档所示,删除 Object vom 数据库很简单。

$product = $em->getRepository('YourBundle::apiKeyInfoCharacters')->find($id);
$em->remove($product);
$em->flush();

但是为什么要删除现有的而不是更新呢?

于 2013-02-03T21:49:39.013 回答