实体category
与type
具有ManyToOne关系,因此每个类别都有一种类型,每种类型都可以与许多类别相关。
我将type
加载为csv,如下所示:
$types = fopen(__DIR__.'/types.csv','r');
while (!feof($types)){
$line = fgetcsv($types);
$data = str_getcsv($line[0],';');
$t[$i] = new Type();
$t[$i]->setIdType($data[0]);
$t[$i]->setDescription($data[1]);
$manager->persist($t[$i]);
$manager->flush();
$i++;
}
fclose($agregatnational);
现在我必须以相同的方式加载categories
:从csv读取并将值插入关系字段而不破坏关系(从csv读取id然后搜索具有此id的type
对象,将该对象映射到目前category
)。
请记住,我无法生成随机ID。有人可以帮忙吗?
我不知道你的类是什么样的,但似乎你在一个名为idType的字段中保存了该类型的原始Id。如果是这种情况,您可以使用ist来获取持久化实体:
$categories = fopen(__DIR__.'/categories.csv','r');
while (!feof($categories)){
$line = fgetcsv($categories);
$data = str_getcsv($line[0],';');
$type = $manager->getRepository('Type::class')->findOneBy(['idType' => data[1]);
$new = new Category();
$new->setType($type);
$new->setName($data[0);
$manager->persist($new);
$manager->flush();
$i++;
}
我希望这有帮助。