mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-02 13:02:24 +08:00
enchansment of db message source
This commit is contained in:
@ -134,11 +134,14 @@ class MessageController extends Controller
|
||||
throw new Exception('The "db" option must refer to a valid database application component.');
|
||||
}
|
||||
$sourceMessageTable = isset($config['sourceMessageTable']) ? $config['sourceMessageTable'] : '{{%source_message}}';
|
||||
$messageTable = isset($config['messageTable']) ? $config['messageTable'] : '{{%message}}';
|
||||
$this->saveMessagesToDb(
|
||||
$messages,
|
||||
$db,
|
||||
$sourceMessageTable,
|
||||
$config['removeUnused']
|
||||
$messageTable,
|
||||
$config['removeUnused'],
|
||||
$config['languages']
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -149,9 +152,11 @@ class MessageController extends Controller
|
||||
* @param array $messages
|
||||
* @param \yii\db\Connection $db
|
||||
* @param string $sourceMessageTable
|
||||
* @param string $messageTable
|
||||
* @param boolean $removeUnused
|
||||
* @param array $languages
|
||||
*/
|
||||
protected function saveMessagesToDb($messages, $db, $sourceMessageTable, $removeUnused)
|
||||
protected function saveMessagesToDb($messages, $db, $sourceMessageTable, $messageTable, $removeUnused, $languages)
|
||||
{
|
||||
$q = new \yii\db\Query;
|
||||
$current = [];
|
||||
@ -196,6 +201,11 @@ class MessageController extends Controller
|
||||
|
||||
$db->createCommand()
|
||||
->insert($sourceMessageTable, ['category' => $category, 'message' => $m])->execute();
|
||||
$last_id = $db->getLastInsertID();
|
||||
foreach ($languages as $language) {
|
||||
$db->createCommand()
|
||||
->insert($messageTable, ['id' => $last_id, 'language' => $language])->execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -210,12 +220,17 @@ class MessageController extends Controller
|
||||
->delete($sourceMessageTable, ['in', 'id', $obsolete])->execute();
|
||||
echo "deleted.\n";
|
||||
} else {
|
||||
$last_id = $db->getLastInsertID();
|
||||
$db->createCommand()
|
||||
->update(
|
||||
$sourceMessageTable,
|
||||
['message' => new \yii\db\Expression("CONCAT('@@',message,'@@')")],
|
||||
['in', 'id', $obsolete]
|
||||
)->execute();
|
||||
foreach ($languages as $language) {
|
||||
$db->createCommand()
|
||||
->insert($messageTable, ['id' => $last_id, 'language' => $language])->execute();
|
||||
}
|
||||
echo "updated.\n";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user