将Yii 1.x消息从文件移动到数据库源

时间:2015-01-07 11:38:37

标签: php yii

我目前正在使用默认的基于文件的Yii消息源(CPhpMessageSource),我希望将其更改为基于数据库的源(CDbMessageSource),但我已经在基于文件的源中有大量现有翻译。

是否有快速方法将这些翻译从文件移动到数据库源?

2 个答案:

答案 0 :(得分:0)

如何创建database migration,为每个翻译插入一行。如果您需要进一步的帮助,可以尝试共享一些代码,我可以尝试为您提供代码示例。

答案 1 :(得分:0)

只需创建读取所有翻译并将其插入数据库的脚本:

$content = file_get_content($pathToMessages);
$translations = eval($content);

$sql = "INSERT INTO `translations` (`key`, `value`) VALUES ";
$params = [];
$inserts = [];
$index = 0;

foreach ($translations as $key => $value) {
   $inserts[] = "(:param{$index}, :param".($index + 1).")";
   $params[":param{$index}"] = $key;
   $params[":param".($index + 1)] = $value;
   $index += 2;
}

$sql .= implode(', ', $inserts);

// Convert it to Yii style.
$query = $db->prepare($sql);
$query->execute($params);