예제 #1
0
 /**
  * Validates the attribute of the object.
  * If there is any error, the error message is added to the object.
  * @param CModel $object the object being validated
  * @param string $attribute the attribute being validated
  */
 protected function validateAttribute($object, $attribute)
 {
     $with = explode(",", $this->with);
     if (count($with) < 1) {
         throw new Exception("Attribute 'with' not set");
     }
     $uniqueValidator = new CUniqueValidator();
     $uniqueValidator->attributes = array($attribute);
     $uniqueValidator->message = $this->message;
     $uniqueValidator->on = $this->on;
     $conditionParams = array();
     $params = array();
     foreach ($with as $attribute) {
         $conditionParams[] = "`{$attribute}`=:{$attribute}";
         $params[":{$attribute}"] = $object->{$attribute};
     }
     $condition = implode(" AND ", $conditionParams);
     $uniqueValidator->criteria = array('condition' => $condition, 'params' => $params);
     $uniqueValidator->validate($object);
 }
 /**
  * @param \CModel $object
  * @param string  $attribute
  *
  * @throws Exception
  * @return null
  */
 protected function validateAttribute($object, $attribute)
 {
     $with = explode(',', $this->with);
     if (count($with) < 1) {
         throw new Exception(Craft::t('Attribute “with” not set.'));
     }
     $uniqueValidator = new \CUniqueValidator();
     $uniqueValidator->attributes = array($attribute);
     $uniqueValidator->message = $this->message;
     $uniqueValidator->on = $this->on;
     $conditionParams = array();
     $params = array();
     foreach ($with as $column) {
         $conditionParams[] = "`{$column}`=:{$column}";
         $params[":{$column}"] = $object->{$column};
     }
     $condition = implode(' AND ', $conditionParams);
     $uniqueValidator->criteria = array('condition' => $condition, 'params' => $params);
     $uniqueValidator->validate($object);
 }