protected function validateAttribute($model, $attributeName)
 {
     if ($model->isRelation($attributeName)) {
         if ($this->requiredValue !== null) {
             if ($this->message !== null) {
                 throw new NotImplementedException();
                 // TODO
                 $message = $this->message;
             } else {
                 $message = Yii::t('yii', '{attribute} must be {value}.', array('{value}' => $this->requiredValue));
             }
             $this->addError($model, $attributeName, $message);
         }
         if ($model->{$attributeName} instanceof CustomField) {
             if ($model->{$attributeName}->value == null) {
                 if ($this->message !== null) {
                     $message = $this->message;
                 } else {
                     $message = Yii::t('yii', '{attribute} cannot be blank.');
                 }
                 $this->addError($model, $attributeName, $message);
             }
         } elseif ($model->{$attributeName} instanceof FileContent) {
             if ($model->{$attributeName}->content === null) {
                 if ($this->message !== null) {
                     $message = $this->message;
                 } else {
                     $message = Yii::t('yii', '{attribute} cannot be blank.');
                 }
                 $this->addError($model, $attributeName, $message);
             }
         } elseif ($model->{$attributeName}->id <= 0 && !$model->{$attributeName}->isModified() || !$model->{$attributeName}->validate()) {
             if ($this->message !== null) {
                 $message = $this->message;
             } else {
                 $message = Yii::t('yii', '{attribute} cannot be blank.');
             }
             $this->addError($model, $attributeName, $message);
         }
     } else {
         parent::validateAttribute($model, $attributeName);
     }
 }
 protected function validateAttribute($model, $attributeName)
 {
     if ($model::isRelation($attributeName)) {
         if ($this->requiredValue !== null) {
             if ($this->message !== null) {
                 throw new NotImplementedException();
                 // TODO
                 $message = $this->message;
             } else {
                 $message = Zurmo::t('Core', '{attribute} must be {value}.', array('{value}' => $this->requiredValue));
             }
             $this->addError($model, $attributeName, $message);
         }
         if ($model->{$attributeName} instanceof CustomField) {
             if ($model->{$attributeName}->value == null) {
                 if ($this->message !== null) {
                     $message = $this->message;
                 } else {
                     $message = Zurmo::t('Core', '{attribute} cannot be blank.');
                 }
                 $this->addError($model, $attributeName, $message);
             }
         } elseif ($model->{$attributeName} instanceof MultipleValuesCustomField) {
             $multipleValues = $model->{$attributeName}->getValues();
             if (count($multipleValues) == 0 || count($multipleValues) == 1 && $multipleValues[0] == '') {
                 if ($this->message !== null) {
                     $message = $this->message;
                 } else {
                     $message = Zurmo::t('Core', '{attribute} cannot be blank.');
                 }
                 $this->addError($model, $attributeName, $message);
             }
         } elseif ($model->{$attributeName} instanceof FileContent) {
             if ($model->{$attributeName}->content === null) {
                 if ($this->message !== null) {
                     $message = $this->message;
                 } else {
                     $message = Zurmo::t('Core', '{attribute} cannot be blank.');
                 }
                 $this->addError($model, $attributeName, $message);
             }
         } elseif ($model->{$attributeName}->id <= 0 && !$model->{$attributeName}->isModified()) {
             if ($this->message !== null) {
                 $message = $this->message;
             } else {
                 $message = Zurmo::t('Core', '{attribute} cannot be blank.');
             }
             $this->addError($model, $attributeName, $message);
         } elseif (!$model->{$attributeName}->validate()) {
             if ($this->message !== null) {
                 $message = $this->message;
             } else {
                 $message = Zurmo::t('Core', 'There was a problem validating {attribute}.');
             }
             $this->addError($model, $attributeName, $message);
         }
     } else {
         parent::validateAttribute($model, $attributeName);
     }
 }