forked from yiiext/eav-behavior
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEEavExtendedBehavior.php
35 lines (30 loc) · 1.07 KB
/
EEavExtendedBehavior.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of EEavExtendedBehavior
*
* @author vladislav
*/
class EEavExtendedBehavior extends EEavBehavior {
public function isUniqueValue($attribute, $value) {
$count = $this->getCountSameEavAttributesCommand($attributes)->query();
return !$count;
}
protected function getCountSameEavAttributesCommand($attributes) {
return $this->getOwner()
->getCommandBuilder()
->createCountCommand($this->tableName, $this->getLoadSameEavAttributesCriteria($attributes));
}
protected function getLoadSameEavAttributesCriteria($attributes = array()) {
$criteria = new CDbCriteria;
$criteria->addCondition("{$this->entityField} <> {$this->getModelId()}");
if (!empty($attributes)) {
$criteria->addInCondition($this->attributeField, $attributes);
}
return $criteria;
}
}