/** * 调用该元素所属群组的 add() 方法,以便在连贯接口中连续添加元素 * * @param enum $type * @param string $id * @param array $attrs * * @return QForm_Element_Abstract */ function add($type, $id, array $attrs = null) { if (!is_null($this->_group)) { return $this->_group->add($type, $id, $attrs); } throw new QForm_Exception(__('Current element not child.')); }
/** * 从配置数组直接添加表单元素 * * @param array $config * @param boolean $nested * * @return QForm */ function loadFromConfig(array $config, $nested = false) { $validations = !empty($config['_validations']) ? (array) $config['_validations'] : array(); unset($config['_validations']); $this->loadValidationsFromConfig($validations); if ($nested) { foreach ($config as $group_name => $elements) { $group = new QForm_Group($group_name); foreach ($elements as $id => $element_define) { $element = new QForm_Element($id, $element_define['type'], $element_define['props']); if (isset($element_define['bind_enabled'])) { $element->setBindEnabled($element_define['bind_enabled']); } $group->add($element); } $this->add($group); } } else { foreach ($config as $id => $element_define) { $element = new QForm_Element($id, $element_define['type'], $element_define['props']); if (isset($element_define['bind_enabled'])) { $element->setBindEnabled($element_define['bind_enabled']); } $this->add($element); } } return $this; }
/** * 调用该元素所属群组的 add() 方法,以便在连贯接口中连续添加元素 * * @param enum $type * @param string $id * @param array $attrs * * @return QForm_Element */ function add($type, $id, array $attrs = null) { if (!is_null($this->_owner)) { return $this->_owner->add($type, $id, $attrs); } // LC_MSG: 当前元素 "%s" 不属于任何群组,因此无法完成 add() 操作. throw new QForm_Exception(__('当前元素 "%s" 不属于任何群组,因此无法完成 add() 操作.', $this->id)); }