Класс yii\rest\ActiveController
| Наследование | yii\rest\ActiveController » yii\rest\Controller » yii\web\Controller » yii\base\Controller » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\base\ViewContextInterface |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/rest/ActiveController.php |
ActiveController реализует общий набор действий для поддержки RESTful доступа к ActiveRecord.
Класс ActiveRecord должен быть указан через $modelClass, который должен реализовывать yii\db\ActiveRecordInterface. По умолчанию поддерживаются следующие действия:
-
index: список моделей -
view: возвращает подробности модели -
create: создание новой модели -
update: обновление существующей модели -
delete: удаление существующей модели -
options: возвращает разрешенные HTTP-методы
Вы можете отключить некоторые из этих действий, переопределив actions() и удалив соответствующие действия.
Для добавления нового действия переопределите actions(), добавив новый класс действия, или напишите новый метод действия. Убедитесь, что вы также переопределили verbs(), чтобы правильно объявить, какие HTTP-методы разрешены новым действием.
Обычно необходимо переопределить checkAccess(), чтобы проверить, имеет ли текущий пользователь право выполнить указанное действие над указанной моделью.
Для получения более подробной информации и руководства по использованию ActiveController, см. статью руководства по контроллерам rest.
Публичные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $action | yii\base\Action | Действие, которое в настоящее время выполняется. | yii\base\Controller |
| $actionParams | массив | Параметры, связанные с текущим действием. | yii\web\Controller |
| $behaviors | yii\base\Behavior[] | Список присоединенных к этому компоненту поведений | yii\base\Component |
| $createScenario | строка | Сценарий, используемый для создания модели. | yii\rest\ActiveController |
| $defaultAction | строка | Идентификатор действия, используемый, когда идентификатор действия не указан в запросе. | yii\base\Controller |
| $enableCsrfValidation | логическое значение | Включить проверку CSRF для действий в этом контроллере. | yii\rest\Controller |
| $id | строка | Идентификатор этого контроллера. | yii\base\Controller |
| $layout | null|строка|false | Имя макета, применяемого к представлениям этого контроллера. | yii\base\Controller |
| $modelClass | строка | Имя класса модели. | yii\rest\ActiveController |
| $module | yii\base\Module | Модуль, к которому принадлежит этот контроллер. | yii\base\Controller |
| $modules | yii\base\Module[] | Все родительские модули, в которых находится этот контроллер. | yii\base\Controller |
| $route | строка | Маршрут (ID модуля, ID контроллера и ID действия) текущего запроса. | yii\base\Controller |
| $serializer | строка|массив | Настройка для создания сериализатора, который форматирует данные ответа. | yii\rest\Controller |
| $uniqueId | строка | ID контроллера, который предваряется ID модуля (если таковой имеется). | yii\base\Controller |
| $updateScenario | строка | Сценарий, используемый для обновления модели. | yii\rest\ActiveController |
| $view | yii\base\View|yii\web\View | Объект представления, который может использоваться для отображения представлений или файлов представлений. | yii\base\Controller |
| $viewPath | строка | Директория, содержащая файлы представлений для этого контроллера. | yii\base\Controller |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __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 |
| actions() | Объявляет внешние действия для контроллера. | yii\rest\ActiveController |
| afterAction() | Этот метод вызывается сразу после выполнения действия. | yii\rest\Controller |
| asJson() | Отправляет данные в формате JSON. | yii\web\Controller |
| asXml() | Отправляет данные в формате XML. | yii\web\Controller |
| attachBehavior() | Присоединяет поведение к компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| beforeAction() | Этот метод вызывается сразу перед выполнением действия. | yii\base\Controller |
| behaviors() | Возвращает список поведений, по которым должен вести себя компонент. | yii\rest\Controller |
| bindActionParams() | Связывает параметры с действием. | yii\base\Controller |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| checkAccess() | Проверяет привилегии текущего пользователя. | yii\rest\ActiveController |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| createAction() | Создаёт действие на основе заданного идентификатора действия. | yii\base\Controller |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что объявленные в behaviors() поведения присоединены к этому компоненту. | yii\base\Component |
| findLayoutFile() | Ищет соответствующий файл макета. | yii\base\Controller |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, присоединённые к этому компоненту. | yii\base\Component |
| getModules() | Возвращает все родительские модули этого контроллера. | yii\base\Controller |
| getRoute() | Возвращает маршрут текущего запроса. | yii\base\Controller |
| getUniqueId() | Возвращает уникальный идентификатор контроллера. | yii\base\Controller |
| getView() | Возвращает объект представления, который можно использовать для рендеринга представлений или файлов представлений. | yii\base\Controller |
| getViewPath() | Возвращает директорию, содержащую файлы представлений для этого контроллера. | yii\base\Controller |
| goBack() | Перенаправляет браузер на последнюю посещённую страницу. | yii\web\Controller |
| goHome() | Перенаправляет браузер на домашнюю страницу. | yii\web\Controller |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли какой-либо обработчик, присоединённый к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\rest\ActiveController |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| redirect() | Перенаправляет браузер на указанный URL. | yii\web\Controller |
| refresh() | Обновляет текущую страницу. | yii\web\Controller |
| render() | Рендерит представление и применяет макет, если он доступен. | yii\base\Controller |
| renderAjax() | Рендерит представление в ответ на AJAX-запрос. | yii\web\Controller |
| renderContent() | Рендерит статическую строку, применяя макет. | yii\base\Controller |
| renderFile() | Рендерит файл представления. | yii\base\Controller |
| renderPartial() | Рендерит представление без применения макета. | yii\base\Controller |
| run() | Выполняет запрос, указанный в терминах маршрута. | yii\base\Controller |
| runAction() | Выполняет действие внутри этого контроллера с указанным идентификатором действия и параметрами. | yii\base\Controller |
| setView() | Устанавливает объект представления, который будет использоваться этим контроллером. | yii\base\Controller |
| setViewPath() | Устанавливает директорию, содержащую файлы представлений. | yii\base\Controller |
| trigger() | Вызывает событие. | yii\base\Component |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| serializeData() | Сериализует указанные данные. | yii\rest\Controller |
| verbs() | Объявляет разрешенные HTTP-методы. | yii\rest\ActiveController |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_ACTION | yii\base\ActionEvent | Событие, которое срабатывает сразу после выполнения действия контроллера. | yii\base\Controller |
| EVENT_BEFORE_ACTION | yii\base\ActionEvent | Событие, которое срабатывает непосредственно перед выполнением действия контроллера. | yii\base\Controller |
Подробное описание свойств
$createScenario общественное свойство
Сценарий, используемый для создания модели.
См. также yii\base\Model::scenarios().
public string $createScenario = \yii\base\Model::SCENARIO_DEFAULT
$modelClass общественное свойство
Имя класса модели. Это свойство должно быть установлено.
public string $modelClass = null
$updateScenario общественное свойство
Сценарий, используемый для обновления модели.
См. также yii\base\Model::scenarios().
public string $updateScenario = \yii\base\Model::SCENARIO_DEFAULT
Подробное описание методов
actions() общественный метод
Объявляет внешние действия для контроллера.
Этот метод предназначен для переопределения, чтобы объявить внешние действия для контроллера. Он должен возвращать массив, где ключами массива являются идентификаторы действий, а значениями — соответствующие имена классов действий или конфигурационные массивы действий. Например,
return [
'action1' => 'app\components\Action1',
'action2' => [
'class' => 'app\components\Action2',
'property1' => 'value1',
'property2' => 'value2',
],
];
Yii::createObject() будет использоваться позже для создания запрошенного действия с помощью предоставленной здесь конфигурации.
| public void actions ( ) |
|---|
checkAccess() общественный метод
Проверяет привилегии текущего пользователя.
Этот метод должен быть переопределен для проверки, обладает ли текущий пользователь привилегиями для выполнения указанного действия с указанной моделью данных. Если у пользователя нет доступа, должен быть выброшен yii\web\ForbiddenHttpException.
| public void checkAccess ( $action, $model = null, $params = [] ) | ||
|---|---|---|
| $action | string |
Идентификатор действия, которое должно быть выполнено |
| $model | object |
Модель, к которой осуществляется доступ. Если null, это означает, что к определённой модели нет доступа. |
| $params | array |
Дополнительные параметры |
| throws | yii\web\ForbiddenHttpException |
если у пользователя нет доступа |
init() общественный метод
Инициализирует объект.
Этот метод вызывается в конце конструктора после инициализации объекта заданной конфигурацией.
| public void init ( ) |
|---|
verbs() защищенный метод
Объявляет разрешенные HTTP-методы.
Обратитесь к \yii\rest\VerbFilter::actions для получения информации о том, как объявить разрешенные методы.
| protected array verbs ( ) | ||
|---|---|---|
| return | array |
Разрешенные HTTP-методы. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-rest-activecontroller.html