Класс yii\widgets\ActiveForm
| Наследование | yii\widgets\ActiveForm » yii\base\Widget » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\base\ViewContextInterface |
| Подклассы | yii\bootstrap\ActiveForm |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/widgets/ActiveForm.php |
ActiveForm — это виджет, который создаёт интерактивную HTML-форму для одной или нескольких моделей данных.
Для получения более подробной информации и рекомендаций по использованию ActiveForm, ознакомьтесь со статьёй руководства по формам.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $action | массив|строка | URL действия формы. | yii\widgets\ActiveForm |
| $ajaxDataType | строка | Тип данных, ожидаемых от сервера. | yii\widgets\ActiveForm |
| $ajaxParam | строка | Имя параметра GET, указывающего, что запрос валидации — это AJAX-запрос. | yii\widgets\ActiveForm |
| $attributes | массив | Параметры проверки на стороне клиента для отдельных атрибутов. | yii\widgets\ActiveForm |
| $autoIdPrefix | строка | Префикс для автоматически сгенерированных идентификаторов виджетов. | yii\base\Widget |
| $behaviors | yii\base\Behavior[] | Список присоединённых к этому компоненту поведений. | yii\base\Component |
| $counter | целое число | Счётчик, используемый для генерации $id для виджетов. | yii\base\Widget |
| $enableAjaxValidation | логическое | Включить валидацию данных по AJAX. | yii\widgets\ActiveForm |
| $enableClientScript | логическое | Подключить `yii. | yii\widgets\ActiveForm |
| $enableClientValidation | логическое | Включить проверку данных на стороне клиента. | yii\widgets\ActiveForm |
| $encodeErrorSummary | логическое | Выполнять кодирование сводки ошибок. | yii\widgets\ActiveForm |
| $errorCssClass | строка | CSS-класс, добавляемый к контейнеру поля, когда у соответствующего атрибута есть ошибка валидации. | yii\widgets\ActiveForm |
| $errorSummaryCssClass | строка | Базовый CSS-класс для контейнера сводки ошибок. | yii\widgets\ActiveForm |
| $fieldClass | строка | Имя класса поля по умолчанию при вызове field() для создания нового поля. | yii\widgets\ActiveForm |
| $fieldConfig | массив|Замыкание | Конфигурация по умолчанию, используемая методом field() при создании нового объекта поля. | yii\widgets\ActiveForm |
| $id | строка | Идентификатор виджета. | yii\base\Widget |
| $method | строка | Метод отправки формы. | yii\widgets\ActiveForm |
| $options | массив | HTML-атрибуты (пары имя-значение) для тега формы. | yii\widgets\ActiveForm |
| $requiredCssClass | строка | CSS-класс, добавляемый к контейнеру поля, когда соответствующий атрибут является обязательным. | yii\widgets\ActiveForm |
| $scrollToError | логическое | Прокручивать к первой ошибке после валидации. | yii\widgets\ActiveForm |
| $scrollToErrorOffset | целое число | Смещение в пикселях, которое должно быть добавлено при прокрутке к первой ошибке. | yii\widgets\ActiveForm |
| $stack | yii\base\Widget[] | Виджеты, которые в данный момент отображаются (не завершены). | yii\base\Widget |
| $successCssClass | строка | CSS-класс, добавляемый к контейнеру поля, когда соответствующий атрибут успешно валидирован. | yii\widgets\ActiveForm |
| $validateOnBlur | логическое | Проводить валидацию при потере фокуса полем ввода. | yii\widgets\ActiveForm |
| $validateOnChange | логическое | Проводить валидацию при изменении значения поля ввода. | yii\widgets\ActiveForm |
| $validateOnSubmit | логическое | Проводить валидацию при отправке формы. | yii\widgets\ActiveForm |
| $validateOnType | логическое | Проводить валидацию по мере ввода пользователем данных в поле ввода. | yii\widgets\ActiveForm |
| $validatingCssClass | строка | CSS-класс, добавляемый к контейнеру поля, когда соответствующий атрибут находится в процессе валидации. | yii\widgets\ActiveForm |
| $validationDelay | целое число | Количество миллисекунд, на которое задерживается валидация при вводе пользователем данных в поле и значение $validateOnType установлено true. | yii\widgets\ActiveForm |
| $validationUrl | массив|строка | URL для выполнения валидации по AJAX. | yii\widgets\ActiveForm |
| $view | yii\web\View | Объект представления, который может использоваться для отображения представлений или файлов представлений. | yii\base\Widget |
| $viewPath | строка | Директория, содержащая файлы представлений для этого виджета. | yii\base\Widget |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путем клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| afterRun() | Этот метод вызывается сразу после выполнения виджета. | yii\base\Widget |
| attachBehavior() | Присоединяет поведение к данному компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| beforeRun() | Этот метод вызывается сразу перед выполнением виджета. | yii\base\Widget |
| begin() | Начинает работу виджета. | yii\base\Widget |
| beginField() | Начинает работу поля формы. | yii\widgets\ActiveForm |
| behaviors() | Возвращает список поведений, по которым должен вести себя данный компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| end() | Заканчивает работу виджета. | yii\base\Widget |
| endField() | Заканчивает работу поля формы. | yii\widgets\ActiveForm |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| errorSummary() | Генерирует сводку ошибок валидации. | yii\widgets\ActiveForm |
| field() | Генерирует поле формы. | yii\widgets\ActiveForm |
| getBehavior() | Возвращает объект поведения с указанным именем. | yii\base\Component |
| getBehaviors() | Возвращает все присоединенные к данному компоненту поведения. | yii\base\Component |
| getId() | Возвращает идентификатор виджета. | yii\base\Widget |
| getView() | Возвращает объект представления, который можно использовать для рендеринга представлений или файлов представления. | yii\base\Widget |
| getViewPath() | Возвращает каталог, содержащий файлы представлений для данного виджета. | yii\base\Widget |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, присоединенный к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует виджет. | yii\widgets\ActiveForm |
| off() | Отсоединяет существующий обработчик событий от данного компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| registerClientScript() | Регистрирует необходимый код JavaScript. | yii\widgets\ActiveForm |
| render() | Рендерит представление. | yii\base\Widget |
| renderFile() | Рендерит файл представления. | yii\base\Widget |
| run() | Выполняет виджет. | yii\widgets\ActiveForm |
| setId() | Устанавливает идентификатор виджета. | yii\base\Widget |
| setView() | Устанавливает объект представления, который будет использоваться этим виджетом. | yii\base\Widget |
| trigger() | Вызывает событие. | yii\base\Component |
| validate() | Проверяет одну или несколько моделей и возвращает массив сообщений об ошибках, индексированный по идентификаторам атрибутов. | yii\widgets\ActiveForm |
| validateMultiple() | Проверяет массив экземпляров моделей и возвращает массив сообщений об ошибках, индексированный по идентификаторам атрибутов. | yii\widgets\ActiveForm |
| widget() | Создает экземпляр виджета и запускает его. | yii\base\Widget |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| getClientOptions() | Возвращает параметры для виджета JS формы. | yii\widgets\ActiveForm |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_RUN | yii\base\WidgetEvent | Событие, генерируемое сразу после выполнения виджета. (доступно начиная с версии 2.0.11) | yii\base\Widget |
| EVENT_BEFORE_RUN | yii\base\WidgetEvent | Событие, генерируемое сразу перед выполнением виджета. (доступно начиная с версии 2.0.11) | yii\base\Widget |
| EVENT_INIT | yii\base\Event | Событие, которое генерируется при инициализации виджета через init(). (доступно начиная с версии 2.0.11) | yii\base\Widget |
Подробности о свойствах
$action общедоступное свойство
URL действия формы. Этот параметр будет обработан yii\helpers\Url::to().
См. также $method для указания HTTP-метода для этой формы.
public array|string $action = ''
$ajaxDataType общественное свойство
Тип данных, ожидаемых от сервера.
public string $ajaxDataType = 'json'
$ajaxParam общественное свойство
Имя параметра GET, указывающего, что запрос валидации — это AJAX-запрос.
public string $ajaxParam = 'ajax'
$attributes общественное свойство
Параметры клиентской валидации для отдельных атрибутов. Каждый элемент массива представляет параметры валидации для конкретного атрибута.
public array $attributes = []
$enableAjaxValidation общественное свойство
Включить AJAX-валидацию данных. Если yii\widgets\ActiveField::$enableAjaxValidation задан, его значение будет иметь приоритет для этого поля ввода.
public boolean $enableAjaxValidation = false
$enableClientScript общественное свойство
Включить подключение yii.activeForm JavaScript-плагина. Это свойство должно быть установлено true , если вы хотите поддерживать клиентскую валидацию и/или AJAX-валидацию или если вы хотите воспользоваться yii.activeForm плагином. Когда это свойство false, форма не будет генерировать JavaScript.
См. также registerClientScript().
public boolean $enableClientScript = true
$enableClientValidation общественное свойство
Включить валидацию данных на стороне клиента. Если yii\widgets\ActiveField::$enableClientValidation задан, его значение будет иметь приоритет для этого поля ввода.
public boolean $enableClientValidation = true
$encodeErrorSummary общественное свойство
Выполнять кодирование для сводки ошибок.
public boolean $encodeErrorSummary = true
$errorCssClass общественное свойство
CSS-класс, который добавляется к контейнеру поля, когда связанный атрибут имеет ошибку валидации.
public string $errorCssClass = 'has-error'
$errorSummaryCssClass общественное свойство
Основной CSS-класс для контейнера сводки ошибок.
См. также errorSummary().
public string $errorSummaryCssClass = 'error-summary'
$fieldClass общественное свойство
Имя класса поля по умолчанию при вызове field() для создания нового поля.
См. также $fieldConfig.
public string $fieldClass = 'yii\widgets\ActiveField'
$fieldConfig общественное свойство
Настройка по умолчанию, используемая field() при создании нового объекта поля. Это может быть массив настроек или анонимная функция, возвращающая массив настроек. Если это последняя, её сигнатура должна быть следующей:
function ($model, $attribute)
Значение этого свойства будет рекурсивно объединено с параметром $options , переданным field().
См. также $fieldClass.
public array|Closure $fieldConfig = []
$method общественное свойство
Метод отправки формы. Должно быть либо post , либо get. По умолчанию post.
При установке значения get вы можете увидеть параметры URL, повторяющиеся в каждом запросе. Это потому, что значение по умолчанию $action установлено как текущий URL запроса, и каждое отправление добавляет новые параметры вместо замены существующих. Вы можете явно установить $action , чтобы этого избежать:
$form = ActiveForm::begin([
'method' => 'get',
'action' => ['controller/action'],
]);
public string $method = 'post'
$options общественное свойство
Атрибуты HTML (парные имя-значение) для тега формы.
См. также yii\helpers\Html::renderTagAttributes() для получения подробностей о том, как отображаются атрибуты.
public array $options = []
$requiredCssClass общественное свойство
CSS-класс, который добавляется к контейнеру поля, когда связанный атрибут является обязательным.
public string $requiredCssClass = 'required'
$scrollToError общественное свойство (доступно начиная с версии 2.0.6)
Прокрутить ли до первой ошибки после валидации.
public boolean $scrollToError = true
$scrollToErrorOffset общественное свойство (доступно начиная с версии 2.0.11)
Смещение в пикселях, которое должно быть добавлено при прокрутке к первой ошибке.
public integer $scrollToErrorOffset = 0
$successCssClass общественное свойство
CSS-класс, который добавляется к контейнеру поля, когда связанный атрибут успешно прошел валидацию.
public string $successCssClass = 'has-success'
$validateOnBlur общественное свойство
Выполнять ли валидацию, когда поле ввода теряет фокус. Если yii\widgets\ActiveField::$validateOnBlur задан, его значение будет иметь приоритет для этого поля ввода.
public boolean $validateOnBlur = true
$validateOnChange общественное свойство
Выполнять ли валидацию, когда значение поля ввода меняется. Если yii\widgets\ActiveField::$validateOnChange задан, его значение будет иметь приоритет для этого поля ввода.
public boolean $validateOnChange = true
$validateOnSubmit общественное свойство
Выполнять ли валидацию при отправке формы.
public boolean $validateOnSubmit = true
$validateOnType общественное свойство
Выполнять ли валидацию, пока пользователь вводит в поле ввода. Если yii\widgets\ActiveField::$validateOnType задан, его значение будет иметь приоритет для этого поля ввода.
См. также $validationDelay.
public boolean $validateOnType = false
$validatingCssClass общественное свойство
CSS-класс, который добавляется к контейнеру поля, когда связанный атрибут проходит валидацию.
public string $validatingCssClass = 'validating'
$validationDelay общественное свойство
Количество миллисекунд, на которое должна быть отложена валидация, когда пользователь вводит в поле, и $validateOnType установлен true. Если yii\widgets\ActiveField::$validationDelay задан, его значение будет иметь приоритет для этого поля ввода.
public integer $validationDelay = 500
$validationUrl общественное свойство
URL для выполнения AJAX-валидации. Это свойство будет обработано yii\helpers\Url::to(). Обратитесь к yii\helpers\Url::to() для получения дополнительной информации о настройке этого свойства. Если это свойство не задано, оно будет принимать значение атрибута действия формы.
public array|string $validationUrl = null
Подробное описание методов
beginField() public method
Начинает поле формы.
Этот метод создаст новое поле формы и вернет его открывающий тег. После этого следует вызвать endField().
См. также:
| public string beginField ( $model, $attribute, $options = [] ) | ||
|---|---|---|
| $model | yii\base\Model |
Модель данных. |
| $attribute | string |
Имя или выражение атрибута. См. yii\helpers\Html::getAttributeName() для формата выражения атрибута. |
| $options | array |
Дополнительные настройки для объекта поля. |
| return | string |
Открывающий тег. |
endField() public method
Завершает поле формы.
Этот метод вернет закрывающий тег поля активной формы, начатого с помощью beginField().
| public string endField ( ) | ||
|---|---|---|
| return | string |
Закрывающий тег поля формы. |
| throws | yii\base\InvalidCallException |
если этот метод вызывается без предварительного вызова beginField(). |
errorSummary() public method
Генерирует сводку ошибок валидации.
Если ошибок валидации нет, разметка сводки ошибок все равно будет сгенерирована, но она будет скрыта.
См. также $errorSummaryCssClass.
| public string errorSummary ( $models, $options = [] ) | ||
|---|---|---|
| $models | yii\base\Model|yii\base\Model[] |
Модель(и), связанная(ые) с этой формой. |
| $options | array |
Параметры тега в виде пар имя-значение. Следующие параметры обрабатываются специальным образом:
Остальные параметры будут отображены как атрибуты контейнерного тега. Значения будут кодированы в HTML с помощью yii\helpers\Html::encode(). Если значение равно |
| return | string |
Сгенерированная сводка ошибок. |
field() public method
Генерирует поле формы.
Поле формы связано с моделью и атрибутом. Оно содержит метку, входные данные и сообщение об ошибке и использует их для взаимодействия с конечными пользователями для сбора их ввода для атрибута.
См. также $fieldConfig.
| public yii\widgets\ActiveField field ( $model, $attribute, $options = [] ) | ||
|---|---|---|
| $model | yii\base\Model |
Модель данных. |
| $attribute | string |
Имя или выражение атрибута. См. yii\helpers\Html::getAttributeName() для формата выражения атрибута. |
| $options | array |
Дополнительные настройки для объекта поля. Это свойства yii\widgets\ActiveField или подкласса, в зависимости от значения $fieldClass. |
| return | yii\widgets\ActiveField |
Созданный объект ActiveField. |
getClientOptions() protected method
Возвращает параметры для виджета JS формы.
| protected array getClientOptions ( ) | ||
|---|---|---|
| return | array |
Параметры. |
init() public method
Инициализирует виджет.
Это отображает открывающий тег формы.
| public void init ( ) |
|---|
registerClientScript() public method (available since version 2.0.12)
Регистрирует необходимый код JavaScript.
| public void registerClientScript ( ) |
|---|
run() public method
Запускает виджет.
Это регистрирует необходимый код JavaScript и отображает открывающие и закрывающие теги формы.
| public void run ( ) | ||
|---|---|---|
| throws | yii\base\InvalidCallException |
если вызовы |
validate() public static method
Валидирует одну или несколько моделей и возвращает массив сообщений об ошибках с индексами по ID атрибутов.
Это вспомогательный метод, который упрощает написание кода AJAX-валидации.
Например, вы можете использовать следующий код в действии контроллера для ответа на запрос AJAX-валидации:
$model = new Post;
$model->load(Yii::$app->request->post());
if (Yii::$app->request->isAjax) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
// ... respond to non-AJAX request ...
Для валидации нескольких моделей просто передайте каждую модель в качестве параметра этому методу, например:
ActiveForm::validate($model1, $model2, ...);
| public static array validate ( $model, $attributes = null ) | ||
|---|---|---|
| $model | yii\base\Model |
Модель для валидации. |
| $attributes | mixed |
Список атрибутов, которые должны быть проверены. Если этот параметр пуст, это означает, что любой атрибут, указанный в соответствующих правилах валидации, должен быть проверен. Когда этот метод используется для проверки нескольких моделей, этот параметр будет интерпретироваться как модель. |
| return | array |
Массив сообщений об ошибках с индексами по ID атрибутов. |
validateMultiple() public static method
Валидирует массив экземпляров моделей и возвращает массив сообщений об ошибках с индексами по ID атрибутов.
Это вспомогательный метод, который упрощает написание кода AJAX-валидации для табличного ввода.
Например, вы можете использовать следующий код в действии контроллера для ответа на запрос AJAX-валидации:
// ... load $models ...
if (Yii::$app->request->isAjax) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validateMultiple($models);
}
// ... respond to non-AJAX request ...
| public static array validateMultiple ( $models, $attributes = null ) | ||
|---|---|---|
| $models | array |
Массив моделей для валидации. |
| $attributes | mixed |
Список атрибутов, которые должны быть проверены. Если этот параметр пуст, это означает, что любой атрибут, указанный в соответствующих правилах валидации, должен быть проверен. |
| return | array |
Массив сообщений об ошибках с индексами по ID атрибутов. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-widgets-activeform.html