public function getFormField($form, $fieldClass = null, array $extra = []) { return parent::getFormField($form, CheckboxField::className(), $extra); }
public function getFormField($form, $fieldClass = null, array $extra = []) { return parent::getFormField($form, \Mindy\Form\Fields\DateField::className(), $extra); }
public function initFields(array $fields = [], $extra = false) { $className = $this->modelClassName; if (empty($fields)) { $fields = $className::getFields(); } $needPk = !$extra; $fkFields = []; $m2mFields = []; foreach ($fields as $name => $config) { /* @var $field \Mindy\Orm\Fields\Field */ if (!is_object($config) && !$config instanceof \Mindy\Orm\Fields\Field) { $field = Creator::createObject($config); $field->setName($name); $field->setModelClass($className); } else { $field = $config; } // $field->setModel($model); if (is_a($field, $className::$autoField) || $field->primary) { $needPk = false; $this->primaryKeyField = $field; } if (is_a($field, $className::$fileField)) { $this->localFileFields[$name] = $field; } if (is_a($field, $className::$relatedField)) { /* @var $field \Mindy\Orm\Fields\RelatedField */ if (is_a($field, $className::$manyToManyField)) { /* @var $field \Mindy\Orm\Fields\ManyToManyField */ $this->manyToManyFields[$name] = $field; $m2mFields[$name] = $field; } if (is_a($field, $className::$hasManyField)) { /* @var $field \Mindy\Orm\Fields\HasManyField */ $this->hasManyFields[$name] = $field; } if (is_a($field, $className::$oneToOneField) && $field->reversed) { /* @var $field \Mindy\Orm\Fields\ForeignField */ $this->oneToOneFields[$name] = $field; } elseif (is_a($field, $className::$foreignField)) { /* @var $field \Mindy\Orm\Fields\ForeignField */ $fkFields[$name] = $field; } } else { $this->localFields[$name] = $field; } $this->allFields[$name] = $field; if (!$extra) { $extraFields = $field->getExtraFields(); if (!empty($extraFields)) { $extraFieldsInitialized = $this->initFields($extraFields, true); foreach ($extraFieldsInitialized as $key => $value) { $field->setExtraField($key, $this->allFields[$key]); $this->extFields[$name] = [$key => $this->allFields[$key]]; } } } } if ($needPk) { $pkName = 'id'; /* @var $autoField \Mindy\Orm\Fields\AutoField */ $autoFieldClass = $className::$autoField; $autoField = new $autoFieldClass(); $autoField->setName($pkName); // $autoField->setModel($model); $this->allFields = array_merge([$pkName => $autoField], $this->allFields); $this->localFields = array_merge([$pkName => $autoField], $this->localFields); $this->primaryKeyField = $autoField; } foreach ($fkFields as $name => $field) { // ForeignKey in self model if ($field->modelClass == $className) { $this->foreignFields[$name . '_' . $this->primaryKeyField->getName()] = $name; } else { $this->foreignFields[$name . '_' . $field->getForeignPrimaryKey()] = $name; } } return $fields; }