Пример #1
0
 /**
  * Override to provide a performance boost by relying on cached row data regarding uniqueness of a currency.
  * This was required since the currency validator was running anytime a currencyValue is validated. Yet we don't
  * need to check the validation of currency all the time since currency does not change often and not from a
  * related model.
  * (non-PHPdoc)
  * @see RedBeanModel::isUniqueAttributeValue()
  */
 public function isUniqueAttributeValue($attributeName, $value)
 {
     if ($attributeName != 'code') {
         return parent::isUniqueAttributeValue($attributeName, $value);
     }
     assert('$value !== null');
     if (isset(static::$currencyIdRowsByCode[$value])) {
         $rows = static::$currencyIdRowsByCode[$value];
     } else {
         $modelClassName = $this->attributeNameToBeanAndClassName[$attributeName][1];
         $tableName = self::getTableName($modelClassName);
         $rows = R::getAll('select id from ' . $tableName . " where {$attributeName} = ?", array($value));
         static::$currencyIdRowsByCode[$value] = $rows;
     }
     return count($rows) == 0 || count($rows) == 1 && $rows[0]['id'] == $this->id;
 }