我编写了一个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;
答案 0 :(得分: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
*/