mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-04 06:37:55 +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.');
|
throw new Exception('The "db" option must refer to a valid database application component.');
|
||||||
}
|
}
|
||||||
$sourceMessageTable = isset($config['sourceMessageTable']) ? $config['sourceMessageTable'] : '{{%source_message}}';
|
$sourceMessageTable = isset($config['sourceMessageTable']) ? $config['sourceMessageTable'] : '{{%source_message}}';
|
||||||
|
$messageTable = isset($config['messageTable']) ? $config['messageTable'] : '{{%message}}';
|
||||||
$this->saveMessagesToDb(
|
$this->saveMessagesToDb(
|
||||||
$messages,
|
$messages,
|
||||||
$db,
|
$db,
|
||||||
$sourceMessageTable,
|
$sourceMessageTable,
|
||||||
$config['removeUnused']
|
$messageTable,
|
||||||
|
$config['removeUnused'],
|
||||||
|
$config['languages']
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -149,9 +152,11 @@ class MessageController extends Controller
|
|||||||
* @param array $messages
|
* @param array $messages
|
||||||
* @param \yii\db\Connection $db
|
* @param \yii\db\Connection $db
|
||||||
* @param string $sourceMessageTable
|
* @param string $sourceMessageTable
|
||||||
|
* @param string $messageTable
|
||||||
* @param boolean $removeUnused
|
* @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;
|
$q = new \yii\db\Query;
|
||||||
$current = [];
|
$current = [];
|
||||||
@ -196,6 +201,11 @@ class MessageController extends Controller
|
|||||||
|
|
||||||
$db->createCommand()
|
$db->createCommand()
|
||||||
->insert($sourceMessageTable, ['category' => $category, 'message' => $m])->execute();
|
->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();
|
->delete($sourceMessageTable, ['in', 'id', $obsolete])->execute();
|
||||||
echo "deleted.\n";
|
echo "deleted.\n";
|
||||||
} else {
|
} else {
|
||||||
|
$last_id = $db->getLastInsertID();
|
||||||
$db->createCommand()
|
$db->createCommand()
|
||||||
->update(
|
->update(
|
||||||
$sourceMessageTable,
|
$sourceMessageTable,
|
||||||
['message' => new \yii\db\Expression("CONCAT('@@',message,'@@')")],
|
['message' => new \yii\db\Expression("CONCAT('@@',message,'@@')")],
|
||||||
['in', 'id', $obsolete]
|
['in', 'id', $obsolete]
|
||||||
)->execute();
|
)->execute();
|
||||||
|
foreach ($languages as $language) {
|
||||||
|
$db->createCommand()
|
||||||
|
->insert($messageTable, ['id' => $last_id, 'language' => $language])->execute();
|
||||||
|
}
|
||||||
echo "updated.\n";
|
echo "updated.\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user