没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\rest\ActiveController

继承yii\rest\ActiveController » yii\rest\Controller » yii\web\Controller » yii\base\Controller » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\base\ViewContextInterface
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/rest/ActiveController.php

ActiveController 实现一组通用操作,以支持对 ActiveRecord 的 RESTful 访问

ActiveRecord 类应该通过 $modelClass 指定,并继承了 yii\db\ActiveRecordInterface。 默认情况下,支持以下操作:

  • index:模型列表
  • view:返回模型的详细信息
  • create:创建一个新模型
  • update:更新现有模型
  • delete:删除现有模型
  • options:返回允许的 HTTP 方法

您可以通过覆盖 actions() 方法,取消其中相应的动作,来禁用其中一些操作。

要添加新操作,可以覆盖 actions() 方法,加上新的 Action 对象,或者直接写个 action 方法。 记得要重写 verbs() 方法声明你新 action 所允许的 HTTP 方法。

通常,你可以重写 checkAccess() 方法,以检查当前用户是否具有执行权限。

关于 ActiveController 的更多使用参考,请查看 Rest 控制器指南

公共属性

隐藏继承的属性

属性类型描述被定义在
$action yii\base\Action The action that is currently being executed. yii\base\Controller
$actionParams array The parameters bound to the current action. yii\web\Controller
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$createScenario string 创建模型时所用的场景。 yii\rest\ActiveController
$defaultAction string The ID of the action that is used when the action ID is not specified in the request. yii\base\Controller
$enableCsrfValidation boolean Whether to enable CSRF validation for the actions in this controller. yii\rest\Controller
$id string The ID of this controller. yii\base\Controller
$layout null|string|false The name of the layout to be applied to this controller's views. yii\base\Controller
$modelClass string 模型的类名。此属性必须设置 yii\rest\ActiveController
$module yii\base\Module The module that this controller belongs to. yii\base\Controller
$modules yii\base\Module[] All ancestor modules that this controller is located within. yii\base\Controller
$route string The route (module ID, controller ID and action ID) of the current request. yii\base\Controller
$serializer string|array Serializer 的配置,用于格式化响应数据。 yii\rest\Controller
$uniqueId string The controller ID that is prefixed with the module ID (if any). yii\base\Controller
$updateScenario string 更新模型时所用的场景。 yii\rest\ActiveController
$view yii\base\View|yii\web\View The view object that can be used to render views or view files. yii\base\Controller
$viewPath string The directory containing the view files for this controller. yii\base\Controller

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() yii\base\Controller
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
actions() Declares external actions for the controller. yii\rest\ActiveController
afterAction() This method is invoked right after an action is executed. yii\rest\Controller
asJson() Send data formatted as JSON. yii\web\Controller
asXml() Send data formatted as XML. yii\web\Controller
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
beforeAction() This method is invoked right before an action is executed. yii\base\Controller
behaviors() Returns a list of behaviors that this component should behave as. yii\rest\Controller
bindActionParams() Binds the parameters to the action. yii\base\Controller
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
checkAccess() 检查当前用户的权限。 yii\rest\ActiveController
className() Returns the fully qualified name of this class. yii\base\BaseObject
createAction() Creates an action based on the given action ID. yii\base\Controller
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
findLayoutFile() Finds the applicable layout file. yii\base\Controller
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getModules() Returns all ancestor modules of this controller. yii\base\Controller
getRoute() Returns the route of the current request. yii\base\Controller
getUniqueId() Returns the unique ID of the controller. yii\base\Controller
getView() Returns the view object that can be used to render views or view files. yii\base\Controller
getViewPath() Returns the directory containing view files for this controller. yii\base\Controller
goBack() Redirects the browser to the last visited page. yii\web\Controller
goHome() Redirects the browser to the home page. yii\web\Controller
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the object. yii\rest\ActiveController
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
redirect() Redirects the browser to the specified URL. yii\web\Controller
refresh() Refreshes the current page. yii\web\Controller
render() Renders a view and applies layout if available. yii\base\Controller
renderAjax() Renders a view in response to an AJAX request. yii\web\Controller
renderContent() Renders a static string by applying a layout. yii\base\Controller
renderFile() Renders a view file. yii\base\Controller
renderPartial() Renders a view without applying layout. yii\base\Controller
run() Runs a request specified in terms of a route. yii\base\Controller
runAction() Runs an action within this controller with the specified action ID and parameters. yii\base\Controller
setView() Sets the view object to be used by this controller. yii\base\Controller
setViewPath() Sets the directory that contains the view files. yii\base\Controller
trigger() Triggers an event. yii\base\Component

受保护的方法

隐藏继承的方法

方法描述被定义在
serializeData() 序列化指定的数据。 默认的实现是通过 $serializer 属性指定的配置创建一个序列化类, 然后用这个序列化类序列化指定的数据。 yii\rest\Controller
verbs() 声明允许的 HTTP verbs(HTTP 动词)。 有关如何声明允许的动词,参考 \yii\rest\VerbFilter::actions yii\rest\ActiveController

Events

隐藏继承的事件

事件类型描述被定义在
EVENT_AFTER_ACTION yii\base\ActionEvent An event raised right after executing a controller action. yii\base\Controller
EVENT_BEFORE_ACTION yii\base\ActionEvent An event raised right before executing a controller action. 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() 公共 方法

Declares external actions for the controller.

This method is meant to be overwritten to declare external actions for the controller. It should return an array, with array keys being action IDs, and array values the corresponding action class names or action configuration arrays. For example,

return [
    'action1' => 'app\components\Action1',
    'action2' => [
        'class' => 'app\components\Action2',
        'property1' => 'value1',
        'property2' => 'value2',
    ],
];

Yii::createObject() will be used later to create the requested action using the configuration provided here.

public void actions()
checkAccess() 公共 方法

检查当前用户的权限。

应该重写此方法以检查当前用户是否具有该权限 对指定的数据模型运行指定的操作。 如果用户没有访问权限,则应抛出 yii\web\ForbiddenHttpException 异常

public void checkAccess($action, $model null, $params = [])
$action string

被执行的动作类的 ID

$model object

被访问的模型类。如果为 null,则意味着没有特别的模型对象被访问。

$params array

额外的参数

throws yii\web\ForbiddenHttpException

如果用户没有访问权限

init() 公共 方法

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

public void init()
verbs() 受保护 方法

声明允许的 HTTP verbs(HTTP 动词)。 有关如何声明允许的动词,参考 \yii\rest\VerbFilter::actions

protected array verbs()
return array

被允许的HTTP 动词。