Класс yii\widgets\DetailView
| Наследование | yii\widgets\DetailView » yii\base\Widget » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\base\ViewContextInterface |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/widgets/DetailView.php |
DetailView отображает детали одного элемента данных $model.
DetailView лучше всего использовать для отображения модели в стандартном формате (например, каждый атрибут модели отображается как строка в таблице.) Модель может быть экземпляром yii\base\Model или ассоциативным массивом.
DetailView использует свойство $attributes для определения, какие атрибуты модели должны быть отображены и как они должны быть отформатированы.
Типичное использование DetailView выглядит следующим образом:
echo DetailView::widget([
'model' => $model,
'attributes' => [
'title', // title attribute (in plain text)
'description:html', // description attribute in HTML
[ // the owner name of the model
'label' => 'Owner',
'value' => $model->owner->name,
],
'created_at:datetime', // creation date formatted as datetime
],
]);
Для получения более подробной информации и руководства по использованию DetailView, ознакомьтесь со статьей руководства по виджетам вывода данных.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $attributes | массив | Список атрибутов, которые будут отображаться в представлении деталей. | yii\widgets\DetailView |
| $autoIdPrefix | строка | Префикс для автоматически сгенерированных идентификаторов виджета. | yii\base\Widget |
| $behaviors | yii\base\Behavior[] | Список поведений, прикрепленных к этому компоненту | yii\base\Component |
| $counter | целое число | Счетчик, используемый для генерации $id для виджетов. | yii\base\Widget |
| $formatter | массив|yii\i18n\Formatter | Форматтер, используемый для форматирования значений атрибутов модели в отображаемые тексты. | yii\widgets\DetailView |
| $id | строка | Идентификатор виджета. | yii\base\Widget |
| $model | массив|объект | Модель данных, чьи детали будут отображены. | yii\widgets\DetailView |
| $options | массив | Атрибуты HTML для тега контейнера этого виджета. | yii\widgets\DetailView |
| $stack | yii\base\Widget[] | Виджеты, которые в настоящее время отображаются (не завершены). | yii\base\Widget |
| $template | строка|вызываемый объект | Шаблон, используемый для отображения отдельного атрибута. | yii\widgets\DetailView |
| $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 |
| 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 |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| 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\DetailView |
| off() | Отсоединяет существующего обработчика событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| render() | Рендерит представление. | yii\base\Widget |
| renderFile() | Рендерит файл представления. | yii\base\Widget |
| run() | Рендерит представление детали. | yii\widgets\DetailView |
| setId() | Устанавливает идентификатор виджета. | yii\base\Widget |
| setView() | Устанавливает объект представления, который будет использоваться этим виджетом. | yii\base\Widget |
| trigger() | Вызывает событие. | yii\base\Component |
| widget() | Создаёт экземпляр виджета и запускает его. | yii\base\Widget |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| normalizeAttributes() | Нормализует спецификации атрибутов. | yii\widgets\DetailView |
| renderAttribute() | Рендерит один атрибут. | yii\widgets\DetailView |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| 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 |
Подробности свойств
$attributes public property
Список атрибутов, которые должны отображаться в представлении детали. Каждый элемент массива представляет собой спецификацию для отображения одного конкретного атрибута.
Атрибут может быть указан как строка в формате attribute, attribute:format или attribute:format:label, где attribute относится к имени атрибута, а format представляет формат атрибута. format передаётся методу yii\i18n\Formatter::format() для форматирования значения атрибута в отображаемый текст. Обратитесь к yii\i18n\Formatter за поддержанными типами. Как format, так и label являются необязательными. Они примут значения по умолчанию, если отсутствуют.
Атрибут также может быть указан в виде массива со следующими элементами:
-
attribute: имя атрибута. Требуется, если не указано ниlabel, ниvalue. -
label: метка, связанная с атрибутом. Если не указана, она будет сгенерирована из имени атрибута. -
value: значение, подлежащее отображению. Если не указано, оно будет извлечено из $model с использованием имени атрибута, вызывая yii\helpers\ArrayHelper::getValue(). Обратите внимание, что это значение будет отформатировано в отображаемый текст в соответствии с опциейformat. Начиная с версии 2.0.11, оно может быть определено как замыкание со следующими параметрами:function ($model, $widget)
$modelотносится к отображаемой модели, а$widget— это экземпляр виджетаDetailView. -
format: тип значения, определяющий, как значение будет отформатировано в отображаемый текст. Обратитесь к yii\i18n\Formatter за информацией о поддерживаемых типах. -
visible: отображается ли атрибут. Если установлено вfalse, атрибут НЕ будет отображён. -
contentOptions: HTML-атрибуты для настройки тега значения. Например:['class' => 'bg-red']. Обратитесь к yii\helpers\BaseHtml::renderTagAttributes() за информацией о поддерживаемом синтаксисе. -
captionOptions: HTML-атрибуты для настройки тега метки. Например:['class' => 'bg-red']. Обратитесь к yii\helpers\BaseHtml::renderTagAttributes() за информацией о поддерживаемом синтаксисе.
public array $attributes = null
$formatter свойство public
Форматировщик, используемый для форматирования значений атрибутов модели в отображаемые тексты. Это может быть либо экземпляр yii\i18n\Formatter, либо массив настроек для создания экземпляра yii\i18n\Formatter. Если это свойство не установлено, будет использован компонент приложения formatter.
public array|yii\i18n\Formatter $formatter = null
$model свойство public
Модель данных, подробности которой должны быть отображены. Это может быть экземпляр yii\base\Model, ассоциативный массив, объект, реализующий интерфейс yii\base\Arrayable, или просто объект с определенными общедоступными (public) доступными нестатическими свойствами.
public array|object $model = null
$options свойство public
HTML-атрибуты для тега контейнера этого виджета. Опция tag задаёт тег контейнера, который следует использовать. По умолчанию, если не задано, используется table.
См. также yii\helpers\Html::renderTagAttributes() для получения подробностей о том, как рендерятся атрибуты.
public array $options = ['class' => 'table table-striped table-bordered detail-view']
$template свойство public
Шаблон, используемый для отображения отдельного атрибута. Если строка, токены {label} и {value} будут заменены меткой и значением соответствующего атрибута. Если обратный вызов (например, анонимная функция), сигнатура должна быть следующей:
function ($attribute, $index, $widget)
где $attribute относится к спецификации отображаемого атрибута, $index — нулевой индекс атрибута в массиве $attributes, а $widget — экземпляр этого виджета.
Начиная с версии 2.0.10, доступны токены {captionOptions} и {contentOptions}, которые будут представлять HTML-атрибуты HTML-контейнерных элементов для метки и значения.
public string|callable $template = '<tr><th{captionOptions}>{label}</th><td{contentOptions}>{value}</td></tr>'
Подробное описание методов
init() метод public
Инициализирует просмотр деталей.
Этот метод инициализирует необходимые значения свойств.
| public void init ( ) |
|---|
normalizeAttributes() защищённый метод
Нормализует спецификации атрибутов.
| protected void normalizeAttributes ( ) | ||
|---|---|---|
| throws | yii\base\InvalidConfigException | |
renderAttribute() защищённый метод
Отображает один атрибут.
| protected string renderAttribute ( $attribute, $index ) | ||
|---|---|---|
| $attribute | array |
Спецификация атрибута для отображения. |
| $index | integer |
Нулевой индекс атрибута в массиве $attributes |
| return | string |
Результат отображения |
run() метод public
Отображает просмотр деталей.
Это основной вход для всего рендеринга просмотра деталей.
| public void run ( ) |
|---|
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-widgets-detailview.html