0

我需要使用已经存在的相同数据创建一组新的数据库记录。见下图:

在此处输入图像描述

以此为例,我需要创建相同的记录集,但只需更改 column company,less take UPC = I5TYF1UPORMYUY4JT21Z,使用此信息我应该能够通过将 company 更改为52(任何数字)来生成两行。我认为是使用以下方法获取这些记录:

$entityStockDetailHasProductDetail = $this->getDoctrine()->getManager()->getRepository('ProductBundle:StockDetailHasProductDetail')->findBy(array(
    "product" => $request->request->get('product')['id'],
    "upc" => $request->request->get('product')['upc'],
));

它返回正确的记录,但我不知道如何从那一点继续。我的实体有所有这些方法:

$entityStockDetailHasProductDetail->setProductDetail();
$entityStockDetailHasProductDetail->setUpc();
$entityStockDetailHasProductDetail->setProduct();
$entityStockDetailHasProductDetail->setCompany();
$entityStockDetailHasProductDetail->setCondition();
$entityStockDetailHasProductDetail->setContent();

有任何想法吗?

4

1 回答 1

2

只需遍历集合,克隆您的实体,设置新公司并坚持下去。

$em = $this->getDoctrine()->getEntityManager('default');
$collection = $em->getRepository('YourBundle:Entity')->findBy(array('...'));

foreach ($collection as $entity) {
    $newEntity = clone $entity;
    $newEntity
       ->setId(null)
       ->setCompany($company)
    ;
    $em->persist($newEntity);
}
$em->flush();
于 2013-10-24T21:12:52.240 回答