English 中文(简体)
如何在使用Doctrine 2 + Gedmo Translatable的不同表格中储存翻译
原标题:How to store a translation in a different table using Doctrine 2 + Gedmo Translatable

Using the instructions on https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/translatable.md#advanced-examples a table can be split in order to store the translations in another table. The resulting table structure is:

(例A)

 Article             ArticleTranslation
+--------------+    +----------------------+
| id           |    | id                   |
+--------------+    +----------------------+
| title        |    | locale               |
+--------------+    +----------------------+
| content      |    | objectclass          |
+--------------+    +----------------------+
| online       |    | foreign_key          |
+--------------+    +----------------------+
                    | field                |
                    +----------------------+

In my view there are two problems using this standard approach: 1. the translated entity is stored into multiple records (one per field) in the translation table 2. The original record should be in the translated table as well.

有可能由Doctrine+ Gedmo Translat 储存这样的翻译:

(例B)

 Article             ArticleTranslation
+--------------+    +----------------------+
| id           |    | id                   |
+--------------+    +----------------------+
| online       |    | foreign_key          |
+--------------+    +----------------------+
                    | locale               |
                    +----------------------+
                    | title                |
                    +----------------------+
                    | content              |
                    +----------------------+

因此,未经翻译的田地应列入《公约》的表格,在《公约》的翻译表中填满一个记录,每翻译一个记录。

How can this be achieved?

最佳回答

using current architecture it stores a record per field in translation table. In general it was done this way in order to avoid synchronization issues if you add or remove translatable fields from your entities. Implementation of your method would result in having additional schema migration command specifically for extension or having some magic mapping in background. To avoid confusion the only thing which is scheduled for update is original record translation storage as default locale fallback, without having record in translation table. I understand that in advanced cases this bahavior is not what you would have done, but it is a behavior for most users which want it configurable as simple as possible. And regarding collection translations you can use query hint This behavior will never cover 99% of use cases like SF2 does in order to maintain simplicity

问题回答

暂无回答




相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签