Further changes for unique and exist validators

- Combined methods for getting names and aliases of from tables
- Normalized names and aliases
- Added MSSQL syntax
- Added support for spaces in aliases and table names
This commit is contained in:
Alexander Makarov
2017-05-10 00:34:45 +03:00
parent 37fc6c5afb
commit 23cc4bf4fe
5 changed files with 78 additions and 78 deletions

View File

@@ -252,11 +252,11 @@ class UniqueValidator extends Validator
/** @var ActiveRecord $targetClass */
$query = $targetClass::find();
$tableAliases = $query->getAliasesUsedInFrom();
$tableAliases = array_keys($query->getTablesUsedInFrom());
$primaryTableAlias = $tableAliases[0];
$prefixedConditions = [];
foreach ($conditions as $columnName => $columnValue) {
$prefixedColumn = "{$primaryTableAlias}.{$columnName}";
$prefixedColumn = "{{{$primaryTableAlias}}}.[[{$columnName}]]";
$prefixedConditions[$prefixedColumn] = $columnValue;
}