从csv数据填充Many To One字段的灯具

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

实体categorytype具有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。有人可以帮忙吗?

symfony doctrine symfony4
1个回答
0
投票

我不知道你的类是什么样的,但似乎你在一个名为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++;
}

我希望这有帮助。

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