我编写了一个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;
您可以使用
use SymfonyBridgeDoctrineValidatorConstraintsUniqueEntity;
UniqueEntity添加一个关于唯一性的约束,如下所示:
/**
* @ORMTable(name="entity")
* @ORMEntity(repositoryClass="AppMainBundleEntityEntityRepository")
* @UniqueEntity(fields={"attributeA"}, message="Attribute A already exists
*/