/**
  * @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);
 }
示例#2
0
 /**
  * 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);
     }
 }