为什么这个代码违反了 Doctrine Symfony 的规则?

问题描述 投票:0回答:1

Apple 项目上的 AssetId 始终相同

$items = ['apple', 'banana', 'orange', 'strawberry', 'apple', 'apple', 'banana', 'orange', 'banana'];
$itemRepository = $this->entityManager->getRepository(Item::class);
$itemList = [];
foreach($items as $item) {
    $assetId = random_int(100,10000);
    // get items metadata, assetid is always null
    $item = $itemRepository->findOneBy(['name' => $item]);

    $item->setAssetId($assetId);
    // save the item object in an array for usage later but before, set now the nulled value
    $itemList[] = $item;
}

dd($itemList);

这里有什么问题,因为 assetid 不是正确的 assetid,所有苹果都有相同的 assetid

symfony doctrine
1个回答
0
投票

您可以根据原则为您的物品提供自动生成的 ID,但不太确定您要在这里做什么。

在您的物品类别中:

#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
protected int $id;

并确保在尝试使用存储库访问您的项目之前保留它们。

© www.soinside.com 2019 - 2024. All rights reserved.