CFormElementCollection
| Пакет | system.web.form |
|---|---|
| Наследование | class CFormElementCollection » CMap » CComponent |
| Реализует | Countable, ArrayAccess, Traversable, IteratorAggregate |
| С версии | 1.1 |
| Исходный код | framework/web/form/CFormElementCollection.php |
CFormElementCollection реализует коллекцию для хранения элементов формы.
Поскольку CFormElementCollection наследуется от CMap, его можно использовать как ассоциативный массив. Например,
CFormElementCollection может хранить три типа значений: массив конфигурации, объект CFormElement или строку, как показано в примере выше. Внутренне эти значения будут преобразованы в объекты CFormElement.
Поскольку CFormElementCollection наследуется от CMap, его можно использовать как ассоциативный массив. Например,
$element=$collection['username'];
$collection['username']=array('type'=>'text', 'maxlength'=>128);
$collection['password']=new CFormInputElement(array('type'=>'password'),$form);
$collection[]='some string';
CFormElementCollection может хранить три типа значений: массив конфигурации, объект CFormElement или строку, как показано в примере выше. Внутренне эти значения будут преобразованы в объекты CFormElement.
Общественные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| count | integer | Возвращает количество элементов в карте. | CMap |
| iterator | CMapIterator | Возвращает итератор для обхода элементов в списке. | CMap |
| keys | array | список ключей | CMap |
| readOnly | boolean | указывает, является ли карта только для чтения. | CMap |
Общественные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод с указанным именем, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CFormElementCollection |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| add() | Добавляет элемент в коллекцию. | CFormElementCollection |
| asa() | Возвращает объект поведения с заданным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| canGetProperty() | Определяет, можно ли считать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| clear() | Удаляет все элементы в карте. | CMap |
| contains() | CMap | |
| copyFrom() | Копирует данные, доступные для итерации, в карту. | CMap |
| count() | Возвращает количество элементов в карте. | CMap |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединённое поведение. | CComponent |
| disableBehaviors() | Отключает все присоединенные поведения этого компонента. | CComponent |
| enableBehavior() | Включает присоединённое поведение. | CComponent |
| enableBehaviors() | Включает все присоединенные поведения этого компонента. | CComponent |
| evaluateExpression() | Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. | CComponent |
| getCount() | Возвращает количество элементов в карте. | CMap |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getIterator() | Возвращает итератор для обхода элементов в списке. | CMap |
| getKeys() | Возвращает список ключей | CMap |
| getReadOnly() | Возвращает значение, указывающее, является ли карта только для чтения. По умолчанию false. | CMap |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, содержит ли событие с указанным именем прикрепленные обработчики. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| itemAt() | Возвращает элемент со специфицированным ключом. | CMap |
| mergeArray() | Рекурсивно объединяет два или более массивов в один. | CMap |
| mergeWith() | Объединяет данные, доступные для итерации, в карту. | CMap |
| offsetExists() | Возвращает, существует ли элемент в указанном смещении. | CMap |
| offsetGet() | Возвращает элемент в указанном смещении. | CMap |
| offsetSet() | Устанавливает элемент в указанном смещении. | CMap |
| offsetUnset() | Удаляет элемент в указанном смещении. | CMap |
| raiseEvent() | Вызывает событие. | CComponent |
| remove() | Удаляет указанный элемент по ключу. | CFormElementCollection |
| toArray() | CMap |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| setReadOnly() | Устанавливает, является ли этот список только для чтения | CMap |
Подробности методов
__construct() метод
public void __construct(CForm $form, boolean $forButtons=false) | ||
| $form | CForm | объект формы, владеющий этим набором элементов |
| $forButtons | boolean | указывает, используется ли этот набор для хранения кнопок. |
Исходный код: framework/web/form/CFormElementCollection.php#41 (показать)
public function __construct($form,$forButtons=false)
{
parent::__construct();
$this->_form=$form;
$this->_forButtons=$forButtons;
}
Конструктор.
add() метод
public void add(mixed $key, mixed $value) | ||
| $key | mixed | ключ |
| $value | mixed | значение |
Исходный код: framework/web/form/CFormElementCollection.php#57 (показать)
public function add($key,$value)
{
if(is_array($value))
{
if(is_string($key))
$value['name']=$key;
if($this->_forButtons)
{
$class=$this->_form->buttonElementClass;
$element=new $class($value,$this->_form);
}
else
{
if(!isset($value['type']))
$value['type']='text';
if($value['type']==='string')
{
unset($value['type'],$value['name']);
$element=new CFormStringElement($value,$this->_form);
}
elseif(!strcasecmp(substr($value['type'],-4),'form')) // a form
{
$class=$value['type']==='form' ? get_class($this->_form) : Yii::import($value['type']);
$element=new $class($value,null,$this->_form);
}
else
{
$class=$this->_form->inputElementClass;
$element=new $class($value,$this->_form);
}
}
}
elseif($value instanceof CFormElement)
{
if(property_exists($value,'name') && is_string($key))
$value->name=$key;
$element=$value;
}
else
$element=new CFormStringElement(array('content'=>$value),$this->_form);
parent::add($key,$element);
$this->_form->addedElement($key,$element,$this->_forButtons);
}
Добавляет элемент в коллекцию. Этот метод переопределяет родительскую реализацию, чтобы гарантировать, что в этой коллекции хранятся только массивы конфигурации, строки или объекты CFormElement.
remove() метод
public void remove(string $key) | ||
| $key | string | имя элемента, который нужно удалить из коллекции |
Исходный код: framework/web/form/CFormElementCollection.php#107 (показать)
public function remove($key)
{
if(($item=parent::remove($key))!==null)
$this->_form->removedElement($key,$item,$this->_forButtons);
}
Удаляет указанный элемент по ключу.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CFormElementCollection