CUniqueValidator and CExistValidator have been updated to use table alias while creating db query condition (fixes bug #114)

This commit is contained in:
Paul Klimov
2012-05-28 12:39:24 +03:00
parent 2b0db1807b
commit caa514850e
3 changed files with 3 additions and 2 deletions

View File

@@ -75,7 +75,7 @@ class CExistValidator extends CValidator
throw new CException(Yii::t('yii','Table "{table}" does not have a column named "{column}".',
array('{column}'=>$attributeName,'{table}'=>$table->name)));
$criteria=array('condition'=>$column->rawName.'=:vp','params'=>array(':vp'=>$value));
$criteria=array('condition'=>$finder->getTableAlias(true).'.'.$column->rawName.'=:vp','params'=>array(':vp'=>$value));
if($this->criteria!==array())
{
$criteria=new CDbCriteria($criteria);

View File

@@ -92,7 +92,7 @@ class CUniqueValidator extends CValidator
$columnName=$column->rawName;
$criteria=new CDbCriteria(array(
'condition'=>$this->caseSensitive ? "$columnName=:value" : "LOWER($columnName)=LOWER(:value)",
'condition'=>$this->caseSensitive ? $finder->getTableAlias(true).".{$columnName}=:value" : "LOWER(".$finder->getTableAlias(true).".{$columnName})=LOWER(:value)",
'params'=>array(':value'=>$value),
));
if($this->criteria!==array())