public function testSetBelongsToFieldCreatesIndex() { $fieldName = 'field'; $table = new ModelTable('table'); $field = new BelongsToField($fieldName, 'type'); $table->setField($field); $this->assertTrue($table->hasIndex($fieldName)); }
/** * Sets the submitted field to the model table * @param zibo\library\orm\definition\ModelTable $modelTable * @param zibo\library\orm\definition\field\ModelField $field * @return null */ private function setFieldToModelTable(ModelTable $modelTable, ModelField $field) { $modelTable->setField($field); $fieldName = $field->getName(); $currentFieldName = $this->wizard->getVariable(BuilderWizard::VARIABLE_FIELD); if (!$currentFieldName || $fieldName == $currentFieldName) { $this->wizard->setVariable(BuilderWizard::VARIABLE_MODEL_TABLE, $modelTable); return; } $order = array(); $fields = $modelTable->getFields(); foreach ($fields as $modelFieldName => $modelField) { if ($modelFieldName == $fieldName) { continue; } if ($modelFieldName == $currentFieldName) { $modelFieldName = $fieldName; } $order[] = $modelFieldName; } $modelTable->orderFields($order); $modelTable->removeField($currentFieldName); $this->wizard->setVariable(BuilderWizard::VARIABLE_MODEL_TABLE, $modelTable); }