/** * @expectedException zibo\library\orm\exception\ModelException */ public function testSetIndexThrowsExceptionWhenIndexFieldDoesNotExist() { $table = new ModelTable('table'); $field = new PropertyField('field', 'type'); $index = new Index('index', array(new PropertyField('field2', 'type'))); $table->addField($field); $table->setIndex($index); }
/** * Sets the the indexes to the model table * @param DOMElement $modelElement Element of the model * @param zibo\library\orm\definition\ModelTable $modelTable Model table which is being read * @return null */ protected function setIndexesFromElement(DOMElement $modelElement, ModelTable $modelTable) { $indexElements = $modelElement->getElementsByTagName(self::TAG_INDEX); foreach ($indexElements as $indexElement) { $indexFields = array(); $indexFieldElements = $indexElement->getElementsByTagName(self::TAG_INDEX_FIELD); foreach ($indexFieldElements as $indexFieldElement) { $fieldName = $indexFieldElement->getAttribute(self::ATTRIBUTE_NAME); $indexFields[$fieldName] = $modelTable->getField($fieldName); } $indexName = $indexElement->getAttribute(self::ATTRIBUTE_NAME); $index = new Index($indexName, $indexFields); $modelTable->setIndex($index); } }