Spec-Zone.ru › Yii 1.1

CFormInputElement

Пакет system.web.form
Наследование class CFormInputElement » CFormElement » CComponent
С момента 1.1
Исходный код framework/web/form/CFormInputElement.php
CFormInputElement представляет элемент ввода формы.

CFormInputElement может представлять следующие типы элементов ввода формы на основе свойства type:
  • text: обычный текстовый ввод, сгенерированный с помощью CHtml::activeTextField
  • hidden: скрытый ввод, сгенерированный с помощью CHtml::activeHiddenField
  • password: ввод пароля, сгенерированный с помощью CHtml::activePasswordField
  • textarea: текстовая область, сгенерированная с помощью CHtml::activeTextArea
  • file: ввод файла, сгенерированный с помощью CHtml::activeFileField
  • radio: радиокнопка, сгенерированная с помощью CHtml::activeRadioButton
  • checkbox: флажок, сгенерированный с помощью CHtml::activeCheckBox
  • listbox: список, сгенерированный с помощью CHtml::activeListBox
  • dropdownlist: выпадающий список, сгенерированный с помощью CHtml::activeDropDownList
  • checkboxlist: список флагов, сгенерированный с помощью CHtml::activeCheckBoxList
  • radiolist: список радиокнопок, сгенерированный с помощью CHtml::activeRadioButtonList
  • url: элемент ввода URL (HTML5), сгенерированный с помощью CHtml::activeUrlField
  • email: элемент ввода электронного адреса (HTML5), сгенерированный с помощью CHtml::activeEmailField
  • number: элемент ввода числа (HTML5), сгенерированный с помощью CHtml::activeNumberField
  • range: элемент ввода диапазона (HTML5), сгенерированный с помощью CHtml::activeRangeField
  • date: элемент ввода даты (HTML5), сгенерированный с помощью CHtml::activeDateField
  • time: элемент ввода времени (HTML5), сгенерированный с помощью CHtml::activeTimeField
  • datetime: элемент ввода даты и времени (HTML5), сгенерированный с помощью CHtml::activeDateTimeField
  • datetimelocal: элемент ввода даты и времени с локальным часовым поясом (HTML5), сгенерированный с помощью CHtml::activeDateTimeLocalField
  • week: элемент ввода недели (HTML5), сгенерированный с помощью CHtml::activeWeekField
  • color: элемент ввода цвета (HTML5), сгенерированный с помощью CHtml::activeColorField
  • tel: элемент ввода номера телефона (HTML5), сгенерированный с помощью CHtml::activeTelField
  • search: элемент ввода поиска (HTML5), сгенерированный с помощью CHtml::activeSearchField
Свойство type также может быть именем класса или псевдонимом пути к классу. В этом случае элемент ввода генерируется с помощью виджета указанного класса. Обратите внимание, что виджет должен иметь свойство "model", ожидающее объект модели, и свойство "attribute", ожидающее имя атрибута модели.

Поскольку CFormElement является предковым классом CFormInputElement, значение, присвоенное несуществующему свойству, будет храниться в attributes, которое будет передано в качестве атрибутов HTML методу CHtml, генерирующему элемент ввода или начальные значения свойств виджета.

Общедоступные свойства

Свойство Тип Описание Определено в
attributes массив список атрибутов (имя=>значение) для HTML-элемента, представленного этим объектом. CFormElement
coreTypes массив Основные типы ввода (псевдоним=>имя метода CHtml) CFormInputElement
enableAjaxValidation логическое разрешить валидацию на основе AJAX для этого элемента ввода. CFormInputElement
enableClientValidation логическое разрешить валидацию на стороне клиента для этого элемента ввода. CFormInputElement
errorOptions массив параметры, используемые при отображении части с ошибкой. CFormInputElement
hint строка текст подсказки для этого элемента ввода CFormInputElement
items массив параметры для этого элемента ввода, если это список, выпадающий список, список флажков или список радиокнопок. CFormInputElement
label строка метка для этого элемента ввода. CFormInputElement
layout строка макет, используемый для отображения метки, элемента ввода, подсказки и ошибки. CFormInputElement
name строка имя этого элемента ввода CFormInputElement
parent смешанный тип непосредственный родитель этого элемента. CFormElement
required логическое получает значение, указывающее, является ли этот элемент ввода обязательным. CFormInputElement
type строка тип этого элемента ввода. CFormInputElement
visible логическое Возвращает значение, указывающее, видимым ли является этот элемент и должен ли он быть отображен. CFormElement

Общедоступные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. CComponent
__construct() Конструктор. CFormElement
__get() Возвращает значение свойства или атрибута. CFormElement
__isset() Проверяет существование и непустоту значения свойства или атрибута. CFormElement
__set() Устанавливает значение свойства или атрибута. CFormElement
__toString() Преобразует объект в строку. CFormElement
__unset() Устанавливает свойство компонента в значение null. CComponent
asa() Возвращает объект именованного поведения. CComponent
attachBehavior() Прикрепляет поведение к этому компоненту. CComponent
attachBehaviors() Прикрепляет список поведений к компоненту. CComponent
attachEventHandler() Прикрепляет обработчик события к событию. CComponent
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
configure() Настраивает этот объект начальными значениями свойств. CFormElement
detachBehavior() Открепляет поведение от компонента. CComponent
detachBehaviors() Открепляет все поведения от компонента. CComponent
detachEventHandler() Открепляет существующий обработчик события. CComponent
disableBehavior() Отключает прикрепленное поведение. CComponent
disableBehaviors() Отключает все прикрепленные поведения к этому компоненту. CComponent
enableBehavior() Включает прикрепленное поведение. CComponent
enableBehaviors() Включает все прикрепленные поведения к этому компоненту. CComponent
evaluateExpression() Вычисляет PHP-выражение или коллбэк в контексте этого компонента. CComponent
getEventHandlers() Возвращает список прикрепленных обработчиков событий для события. CComponent
getLabel() Возвращает метку для этого элемента ввода. Если метка не задана вручную, этот метод вызовет CModel::getAttributeLabel для определения метки. CFormInputElement
getParent() Возвращает непосредственного родителя этого элемента. Это может быть объект CForm или объект CBaseController (контроллер или виджет). CFormElement
getRequired() Получает значение, указывающее, является ли этот элемент ввода обязательным. CFormInputElement
getVisible() Возвращает значение, указывающее, отображается ли этот элемент и должен ли он быть отображен. CFormElement
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли прикрепленные обработчики для указанного события. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
raiseEvent() Вызывает событие. CComponent
render() Отображает все для этого элемента ввода. CFormInputElement
renderError() Отображает отображение ошибки этого элемента ввода. CFormInputElement
renderHint() Отображает текст подсказки для этого элемента ввода. CFormInputElement
renderInput() Отображает поле ввода. CFormInputElement
renderLabel() Отображает метку для этого элемента ввода. CFormInputElement
setLabel() Устанавливает метку для этого элемента ввода CFormInputElement
setRequired() Устанавливает, является ли этот элемент ввода обязательным. CFormInputElement
setVisible() Устанавливает, отображается ли этот элемент и должен ли он быть отображен. CFormElement

Защищенные методы

Метод Описание Определено в
evaluateVisible() Вычисляет видимость этого элемента. CFormInputElement

Подробное описание свойств

coreTypes свойство

public static array $coreTypes;

Типы входных данных ядра (псевдоним=>имя метода CHtml)

enableAjaxValidation свойство (доступно с версии 1.1.7)

public boolean $enableAjaxValidation;

разрешить ли проверку на основе AJAX для этого элемента ввода. Обратите внимание, что для использования проверки на основе AJAX, CForm::activeForm должен быть настроен с 'enableAjaxValidation'=>true. Это свойство позволяет включить или выключить проверку на основе AJAX для отдельных элементов ввода. По умолчанию значение равно true.

enableClientValidation свойство (доступно с версии 1.1.7)

public boolean $enableClientValidation;

разрешить ли проверку на стороне клиента для этого элемента ввода. Обратите внимание, что для использования проверки на стороне клиента, CForm::activeForm должен быть настроен с 'enableClientValidation'=>true. Это свойство позволяет включить или выключить проверку на стороне клиента для отдельных элементов ввода. По умолчанию значение равно true.

errorOptions свойство (доступно с версии 1.1.1)

public array $errorOptions;

параметры, используемые при отображении части ошибки. Это свойство будет передано в вызов метода CActiveForm::error в качестве параметра $htmlOptions.

См. также

  • CActiveForm::error

hint свойство

public string $hint;

текст подсказки этого элемента ввода

items свойство

public array $items;

параметры для этого элемента ввода, когда это список, выпадающий список, список флажков или список радиокнопок. Подробности по генерации этого значения свойства см. в CHtml::listData.

label свойство

public string getLabel()
public void setLabel(string $value)

метка для этого элемента ввода. Если метка не задана вручную, этот метод вызовет CModel::getAttributeLabel для определения метки.

layout свойство

public string $layout;

макет, используемый для отображения метки, поля ввода, подсказки и ошибки. Они соответствуют плейсхолдерам "{label}", "{input}", "{hint}" и "{error}".

name свойство

public string $name;

имя этого элемента ввода

required свойство

public boolean getRequired()
public void setRequired(boolean $value)

Получает значение, указывающее, является ли этот элемент ввода обязательным. Если это свойство не установлено явно, оно будет определено путем вызова CModel::isAttributeRequired для связанной модели и атрибута этого элемента ввода.

type свойство

public string $type;

тип этого элемента ввода. Это может быть имя класса виджета, псевдоним пути имени класса виджета или псевдоним типа ввода (text, hidden, password, textarea, file, radio, checkbox, listbox, dropdownlist, checkboxlist или radiolist). Если это класс виджета, он должен быть расширением CInputWidget или (@link CJuiInputWidget).

Подробное описание методов

evaluateVisible() метод

protected boolean evaluateVisible()
{return} boolean является ли этот элемент видимым.
Исходный код: framework/web/form/CFormInputElement.php#272 (показать)
protected function evaluateVisible()
{
    return 
$this->getParent()->getModel()->isAttributeSafe($this->name);
}

Оценивает видимость этого элемента. Этот метод проверит, является ли атрибут, связанный с этим элементом ввода, безопасным для текущей модели сценария.

getLabel() метод

public string getLabel()
{return} string метка для этого элемента ввода. Если метка не задана вручную, этот метод вызовет CModel::getAttributeLabel, чтобы определить метку.
Исходный код: framework/web/form/CFormInputElement.php#165 (показать)
public function getLabel()
{
    if(
$this->_label!==null)
        return 
$this->_label;
    else
        return 
$this->getParent()->getModel()->getAttributeLabel($this->name);
}

getRequired() метод

public boolean getRequired()
{return} boolean является ли этот элемент ввода обязательным.
Исходный код: framework/web/form/CFormInputElement.php#145 (показать)
public function getRequired()
{
    if(
$this->_required!==null)
        return 
$this->_required;
    else
        return 
$this->getParent()->getModel()->isAttributeRequired($this->name);
}

Получает значение, указывающее, является ли этот элемент ввода обязательным. Если это свойство не установлено явно, оно будет определено путем вызова CModel::isAttributeRequired для связанной модели и атрибута этого элемента ввода.

render() метод

public string render()
{return} string полный результат рендеринга для этого элемента ввода, включая метку, поле ввода, подсказку и ошибку.
Исходный код: framework/web/form/CFormInputElement.php#188 (показать)
public function render()
{
    if(
$this->type==='hidden')
        return 
$this->renderInput();
    
$output=array(
        
'{label}'=>$this->renderLabel(),
        
'{input}'=>$this->renderInput(),
        
'{hint}'=>$this->renderHint(),
        
'{error}'=>!$this->getParent()->showErrors ? '' : $this->renderError(),
    );
    return 
strtr($this->layout,$output);
}

Рендерит всё для этого элемента ввода. Стандартная реализация просто возвращает результат renderLabel, renderInput, renderHint. Когда CForm::showErrorSummary ложно, renderError также вызывается для отображения сообщений об ошибках после отдельных полей ввода.

renderError() метод

public string renderError()
{return} string результат рендеринга
Исходный код: framework/web/form/CFormInputElement.php#250 (показать)
public function renderError()
{
    
$parent=$this->getParent();
    return 
$parent->getActiveFormWidget()->error($parent->getModel(), $this->name, $this->errorOptions, $this->enableAjaxValidation, $this->enableClientValidation);
}

Рендерит отображения ошибок этого элемента ввода. Стандартная реализация возвращает результат CHtml::error

renderHint() метод

public string renderHint()
{return} string результат рендеринга.
Исходный код: framework/web/form/CFormInputElement.php#261 (показать)
public function renderHint()
{
    return 
$this->hint===null ? '' : '<div class="hint">'.$this->hint.'</div>';
}

Рендерит текста подсказки для этого элемента ввода. Стандартная реализация возвращает свойство hint, заключенное в тег абзаца HTML.

renderInput() метод

public string renderInput()
{return} string результат рендеринга
Исходный код: framework/web/form/CFormInputElement.php#224 (показать)
public function renderInput()
{
    if(isset(
self::$coreTypes[$this->type]))
    {
        
$method=self::$coreTypes[$this->type];
        if(
strpos($method,'List')!==false)
            return 
CHtml::$method($this->getParent()->getModel(), $this->name, $this->items, $this->attributes);
        else
            return 
CHtml::$method($this->getParent()->getModel(), $this->name, $this->attributes);
    }
    else
    {
        
$attributes=$this->attributes;
        
$attributes['model']=$this->getParent()->getModel();
        
$attributes['attribute']=$this->name;
        
ob_start();
        
$this->getParent()->getOwner()->widget($this->type, $attributes);
        return 
ob_get_clean();
    }
}

Рендерит поля ввода. Стандартная реализация возвращает результат соответствующего метода CHtml или виджета.

renderLabel() метод

public string renderLabel()
{return} string результат рендеринга
Исходный код: framework/web/form/CFormInputElement.php#206 (показать)
public function renderLabel()
{
    
$options = array(
        
'label'=>$this->getLabel(),
        
'required'=>$this->getRequired()
    );

    if(!empty(
$this->attributes['id']))
        
$options['for']=$this->attributes['id'];

    return 
CHtml::activeLabel($this->getParent()->getModel(), $this->name, $options);
}

Рендерит метки для этого элемента ввода. Стандартная реализация возвращает результат activeLabelEx.

setLabel() метод

public void setLabel(string $value)
$value string метка для этого элемента ввода
Исходный код: framework/web/form/CFormInputElement.php#176 (показать)
public function setLabel($value)
{
    
$this->_label=$value;
}

setRequired() метод

public void setRequired(boolean $value)
$value boolean является ли этот элемент ввода обязательным.
Исходный код: framework/web/form/CFormInputElement.php#156 (показать)
public function setRequired($value)
{
    
$this->_required=$value;
}

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CFormInputElement

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API