Doctrine 插入带有条令的选定数据集的简单方法

Doctrine 插入带有条令的选定数据集的简单方法,doctrine,doctrine-orm,Doctrine,Doctrine Orm,在条令中有没有一种简单的方法来加载数据集(可能是 $dataset = $em->getRepository($entity)->find($id); )更改一些值,然后通过对flush()的简单调用将(!)此修改的数据集插入表中?因此,我希望有一个新的数据集,具有新生成的autovalue,等等 $dataset = $em->getRepository($entity)->find($id); $dataset2= new $entity; $dataset2-&g

在条令中有没有一种简单的方法来加载数据集(可能是

$dataset = $em->getRepository($entity)->find($id);
)更改一些值,然后通过对flush()的简单调用将(!)此修改的数据集插入表中?因此,我希望有一个新的数据集,具有新生成的autovalue,等等

$dataset = $em->getRepository($entity)->find($id);
$dataset2= new $entity;
$dataset2->setZip($dataset->getZip());
$em->persist($account);
$em->flush();
通过这种方式,您可以为项目设置一个新值并刷新它们,但如果您有很多字段,并且只想修改一些次要字段,则最好使用QueryBuilder并返回arrayResult,而不是对象(由find命令返回):

看到了吗?在教义中做一些简单的工作是一件非常痛苦的事情

 $qb = $em->createQueryBuilder();
 $qb->add('select', 'a')
->add('from', 'Entities\Account a')
->add('where', 'a.zip = :zip')
->add('orderBy', 'a.username ASC')
->setParameter('zip', '20171');
 $query = $qb->getQuery();
 $dataset = $query->getArrayResult();

 //Modify your array and then use the following class to serialize the array to a flushable array object
$entityUtil = new Cob\Doctrine\ORM\EntityUtil ( $this->em );
$dataset2 = $entityUtil->createEntity (new $entity,$dataset);
$em->persist($dataset2);
$em->flush();


 get entityutil from [here][1]