Commit 64019ba8 authored by Ad Schellevis's avatar Ad Schellevis

(model, constraints) add getOptionValueList() to BaseConstraint, move code from UniqueConstraint

parent b6f3b960
...@@ -50,4 +50,21 @@ abstract class BaseConstraint extends Validator implements ValidatorInterface ...@@ -50,4 +50,21 @@ abstract class BaseConstraint extends Validator implements ValidatorInterface
} }
$validator->appendMessage(new Message($message, $attribute, $name)); $validator->appendMessage(new Message($message, $attribute, $name));
} }
/**
* retrieve option value list
* @param $fieldname
* @return mixed
*/
protected function getOptionValueList($fieldname)
{
$result = array();
$options = $this->getOption($fieldname);
if (!empty($options)) {
foreach ($options as $option) {
$result[] = $option;
}
}
return $result;
}
} }
...@@ -44,7 +44,6 @@ class UniqueConstraint extends BaseConstraint ...@@ -44,7 +44,6 @@ class UniqueConstraint extends BaseConstraint
public function validate(\Phalcon\Validation $validator, $attribute) public function validate(\Phalcon\Validation $validator, $attribute)
{ {
$node = $this->getOption('node'); $node = $this->getOption('node');
$addFields = $this->getOption('addFields');
$fieldSeparator = chr(10) . chr(0); $fieldSeparator = chr(10) . chr(0);
if ($node) { if ($node) {
$containerNode = $node; $containerNode = $node;
...@@ -60,11 +59,7 @@ class UniqueConstraint extends BaseConstraint ...@@ -60,11 +59,7 @@ class UniqueConstraint extends BaseConstraint
if ($containerNode != null && $level == 2) { if ($containerNode != null && $level == 2) {
// collect (additional) key fields // collect (additional) key fields
$keyFields = array($nodeName); $keyFields = array($nodeName);
if (!empty($addFields)) { $keyFields = array_merge($keyFields, $this->getOptionValueList('addFields'));
foreach ($addFields as $field) {
$keyFields[] = $field;
}
}
// calculate the key for this node // calculate the key for this node
$nodeKey = ''; $nodeKey = '';
foreach ($keyFields as $field) { foreach ($keyFields as $field) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment