Dar*_*ein 4 symfony doctrine-extensions
在Gedmo Doctrine Extensions的可翻译行为中,有关于“个人翻译”的说明。有人可以澄清什么是个人翻译吗?
当您想要处理翻译实体(使用您自己的表)而不是默认行为时,可以使用个人翻译,方法是使用单个表来处理所有翻译。
通过使用默认行为,您将获得一个名为的表ext_translations,其中包含所有翻译数据。我将根据 的文档给你一个例子DoctrineExtensions。
假设我们创建一个Article具有 2 个可翻译字段的实体 -title和content。这意味着我们应该具有以下表结构articles:
+----+-------+---------+
| id | title | content |
+----+-------+---------+
Run Code Online (Sandbox Code Playgroud)
现在,默认情况下,TranslatableListeneren_us在每次创建新实体时都会设置区域设置,从而仅填充articles表:
$article = new Article();
$article->setTitle('Title english');
$article->setContent('Content english');
Run Code Online (Sandbox Code Playgroud)
会导致以下情况:
+----+---------------+-----------------+
| id | title | content |
+----+---------------+-----------------+
| 1 | Title english | Content english |
+----+---------------+-----------------+
Run Code Online (Sandbox Code Playgroud)
到目前为止,只能articles使用新记录进行更新,但是当您想要使用不同的语言环境翻译这些字段时,我们的公用表ext_translations也会更新。
该表具有以下结构:
+----+--------+---------------+---------+-------------+------------+
| id | locale | object_class | field | foreign_key | content |
+----+--------+---------------+---------+-------------+------------+
Run Code Online (Sandbox Code Playgroud)
那么,当我们用一些新翻译更新记录时会发生什么:
$article->setTitle('My title');
$article->setContent('My content');
$article->setTranslatableLocale('de_de');
Run Code Online (Sandbox Code Playgroud)
当我们持久化更新的实体时,我们会得到以下结构ext_translations:
+----+--------+---------------+---------+-------------+------------+
| id | locale | object_class | field | foreign_key | content |
+----+--------+---------------+---------+-------------+------------+
| 1 | de_de | Bundle\Entity | title | 1 | My title |
| 2 | de_de | Bundle\Entity | content | 1 | My content |
+----+--------+---------------+---------+-------------+------------+
Run Code Online (Sandbox Code Playgroud)
现在您知道默认行为是如何工作的了。它将所有翻译(不仅仅是单个实体,而是所有翻译)存储在一个表中。
但是,当您使用个人翻译时,您可以将您的(为了我们的示例而说)Article翻译存储到其自己的单独表article_translations.
如果您熟悉DoctrineExtensionsprovided by KnpLabs,那么您已经了解了provided by 的含义PersonalTranslations。可以在此处找到有关此主题的文档链接。
希望这能为您澄清一些事情。如果您对此还有更多疑问,请告诉我。
| 归档时间: |
|
| 查看次数: |
1429 次 |
| 最近记录: |