0

我编写了一个 API 调用,用于在 MainTable 中提取 .json 文件。

在 LangTable 中,我有 3 种语言,我正在提取每种语言的 json 数据。

Json 数据具有要填充的键和区域设置字段。

为了避免重复,不应该有重复的键<->语言环境值,因此应该检查每个键。

在持久化数据库之前如何检查?

下面的代码有效。现在我需要添加我提到的逻辑。

有人可以帮忙吗?

    $file = file_get_contents('translation.json');
    $jsonData = json_decode($file, true);

    $findLanguage = $this->getLangTableRepository()->findAll();

    foreach ( $findLanguage as $locale) {
        foreach ($jsonData as $data) {
            $newTranslation = new MainTable();
            $newTranslation->setKey($data);
            $newTranslation->setLocale($locale->getLocale());
            $this->em->persist($newTranslation);
        }
    }

    $this->em->flush();

    dump('done!');die;
4

1 回答 1

0

您可以使用

use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

UniqueEntity 添加关于唯一性的约束,如下所示:

/**
 * @ORM\Table(name="entity") 
 * @ORM\Entity(repositoryClass="App\MainBundle\Entity\EntityRepository")
 * @UniqueEntity(fields={"attributeA"}, message="Attribute A already exists
 */
于 2019-05-28T11:08:35.123 回答