這是我嘗試做的事。我有以下結構的表,是應該持有任何其他表
Translations
| Language id | translation | record_id | column_name | table_name |
====================================================================
| 1 | Hello | 1 | test_column | test_table |
| 2 | Aloha | 1 | test_column | test_table |
| 1 | Test input | 2 | test_column | test_table |
在我的代碼我在我的觀點使用其它數據的轉換價值,我有查這個表的功能,並以用戶的語言返回字符串。如果字符串沒有用他的語言翻譯,函數返回應用程序的默認字符串(假設用ID = 1
)
它工作正常,但我必須通過約600個視圖文件來應用此.. 。我想知道是否可以在原始記錄的$this->db->get()
之前的CodeIgniter模型中注入一些SQL,以替換原始列和轉換後的列。
事情是這樣的:
$this->db->select('column_name, col_2, col_3');
// Injected SQL pseudocode:
// If RECORD EXISTS in table Translations where Language_id = 2 and record_id = 2 AND column_name = test_column AND table_name = test_table
// BEGIN
// SELECT translations.translation as column_name
// WHERE translations.table_name = test_table AND column_name = test_column AND record_id = 2
// END
// ELSE
// BEGIN
// SELECT translations.translation as column_name
// WHERE translations.table_name = test_table AND column_name = test_column AND record_id = 1
// END
$this->db->get('test_table');
這是可能以某種方式做?
也許我不理解你的問題好吧,但你不能只是以某種方式將翻譯表加入到查詢中? – jmadsen
我也需要它是有條件的。 「如果存在行,請選擇其他行,否則請保留原始列」 – Loupax