mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 14:46:19 +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