FOF30\Factory\Scaffolding\Layout\FormErector::applyModelField PHP Метод

applyModelField() приватный Метод

private applyModelField ( DataModel $model, SimpleXMLElement &$fieldSet, $fieldName, $modelName )
$model FOF30\Model\DataModel
$fieldSet SimpleXMLElement
    private function applyModelField(DataModel $model, \SimpleXMLElement &$fieldSet, $fieldName, $modelName)
    {
        // This will fail if the model is invalid, e.g. we have example_foobar_id but no #__example_foobars table. The
        // error will balloon up the stack and the field will be rendered as simple numeric field instead of a Model
        // field.
        /** @var DataModel $foreignModel */
        $foreignModel = $model->getContainer()->factory->model($modelName);
        $value_field = $foreignModel->getKeyName();
        if ($foreignModel->hasField('title')) {
            $value_field = $foreignModel->getFieldAlias('title');
        }
        $langDefs = $this->getFieldLabel($fieldName);
        $this->addString($langDefs['label']['key'], $langDefs['label']['value']);
        $this->addString($langDefs['desc']['key'], $langDefs['desc']['value']);
        $field = $fieldSet->addChild('field');
        $field->addAttribute('name', $fieldName);
        $field->addAttribute('type', 'Model');
        $field->addAttribute('model', $modelName);
        $field->addAttribute('key_field', $foreignModel->getKeyName());
        $field->addAttribute('value_field', $value_field);
        $field->addAttribute('label', $langDefs['label']['key']);
        if ($this->addDescriptions) {
            $field->addAttribute('description', $langDefs['desc']['key']);
        }
    }