Class yii\base\Controller
2017-03-06 00:00
489 查看
所有类 | 属性 | 方法 | 事件
控制器包含控制器逻辑类的基类。
更多细节和使用控制器的信息,请参阅指南文章控制器。
目前正在执行的行动。这个属性将通过运行()时, yii\base\Application运行一个行动。
public yii\base\Action $action = null
$defaultAction public property
行动时使用的ID请求中指定ID没有采取行动。默认为“指数”。
public string $defaultAction = 'index'
$id public property
该控制器的ID.
public string $id = null
$layout public property
布局的名称应用到该控制器的观点。此属性主要影响渲染render().的行为。默认为零,这意味着实际布局值应该从模块$module的布局的继承。如果错误,没有布局将被应用。
public null|string|false $layout = null
$module public property
他模块,控制器属于。
public yii\base\Module $module = null
actions() public 方法
Declares external actions for the controller.
这个方法是重写声明外部行为的控制器。它应该返回一个数组,数组键操作id,和数组值相应的action类名称或操作配置阵列。例如,
Yii:createObject()稍后将用于创建请求的操作使用这里提供的配置。
afterAction() public 方法
调用该方法之后执行一个动作。
该方法将触发EVENT_AFTER_ACTION事件。该方法的返回值将被用作操作的返回值。
如果你重写此方法,您的代码应该类似于下面的:
beforeAction() public 方法
这个方法被调用之前执行一个动作。
该方法将触发EVENT_BEFORE_ACTION事件。方法的返回值将决定行为应该继续运行
行动不应该运行的,请求应beforeAction代码的内部处理提供必要的输出或重定向请求。否则响应将是空的。
如果你重写此方法,您的代码应该类似于下面的:
bindActionParams() public 方法
将参数绑定到行动。
调用该方法,yii \基地\行动时开始使用给定的运行参数
createAction() public 方法
创建一个行动基于给定的行动ID。
方法首先检查如果行动ID已经宣布在行动()。如果是这样,它将使用配置宣布创建操作对象。如果不是,它会寻找一个控制器方法,他的名字叫actionXyz,Xyz格式的代表动作ID。如果找到,yii\base\InlineAction 代表该方法将创建并返回。
findLayoutFile() public 方法
Finds the applicable layout file.
getModules() public 方法
返回所有祖先模块的控制器。
数组中的第一个模块是一个(即最外层。应用程序实例),而最后一个是最里面的一个。
getRoute() public 方法
返回当前请求的路径。
getUniqueId() public 方法
返回控制器的惟一ID
getView() public 方法
返回的视图对象可以用来渲染视图或视图文件。
render(), renderPartial() and renderFile()方法将使用这个视图对象来实现实际的观点呈现。如果没有设置,它将默认为“视图”应用程序组件。
getViewPath() public 方法
为该控制器返回的目录,其中包含视图文件。
默认实现返回目录命名为id下控制器$module's \yii\base\viewPath目录。
render() public 方法
渲染一个视图和应用布局如果可用
可以在一个指定的视图呈现下列格式:
如路径别名 (e.g. "@app/views/site/index");
绝对路径在应用程序(如。“/ /网站/指数”):视图名始于双斜杠。实际的视图文件将寻找下yii \ \应用基础::viewPath应用程序。
绝对路径内模块(如。“/网站/指数”):视图名始于一个斜杠。实际的视图文件将寻找下yii\base\Module::viewPath 的$module.
相对路径(如。“指数”):实际的视图文件将寻找下\yii\base\viewPath.基地
确定哪些布局应该应用,以下两个步骤进行:
在第一步,它决定了布局名称和内容模块:
如果$layout被指定为一个字符串,用它作为布局名称和美元模块上下文模块;
如果如果$layout 是null,搜索所有祖先模块的控制器和找到第一个模块的布局不是零。布局和相应的模块用于布局名称和上下文模块,分别。如果没有找到这样一个模块或相应的布局不是一个字符串,它将返回false,这意味着没有适用的布局
在第二步中,它决定了实际布局文件根据先前发现的布局模块名称和上下文。布局名称可以:
如路径别名 (e.g. "@app/views/layouts/main");
一个绝对路径(e.g. "/main"”):布局名称始于一个斜杠。实际的布局文件将寻找下yii\base\Application::layoutPath应用;
(如一个相对路径。“"main"”):实际的布局文件将寻找下yii\base\Module::layoutPath上下文。
如果布局名称不包含一个文件扩展名,它将使用默认一个。php。
renderContent() public 方法 (可用自版本 2.0.1)
Renders a static string by applying a layout.
renderFile() public 方法
渲染一个视图文件。
renderPartial() public 方法
渲染一个视图没有应用布局。
这种方法与渲染()的不同之处在于,它不适用任何布局。
run() public 方法
运行一个请求中指定的路线。
The route can be either an ID of an action within this controller or a complete route consisting of module IDs, controller ID and action ID. If the route starts with a slash '/', the parsing of the route will start from the application; otherwise, it will start from the parent module of this controller.
参见 runAction().
runAction() public 方法
运行一个动作在这个控制器使用ID和指定的操作参数。
如果行动ID为空,该方法将使用 $defaultAction.
参见 createAction().
setView() public 方法
设置视图对象使用这个控制器。
setViewPath() public 方法 (可用自版本 2.0.7)
集包含视图的目录文件。
一个事件之后执行一个控制器动作.
EVENT_BEFORE_ACTION yii\base\ActionEvent基础类型的事件
.一个事件之前执行一个控制器动作。你可以设置yii\base\ActionEvent::$isValid 是错误的取消操作执行。
继承 | yii\base\Controller » yii\base\Component » yii\base\Object |
---|---|
实现 | yii\base\ViewContextInterface |
可用自版本 | 2.0 |
更多细节和使用控制器的信息,请参阅指南文章控制器。
公共属性
隐藏继承属性属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
$action | yii\base\Action | 目前正在执行的行动。 | yii\base\Controller |
$defaultAction | string | 行动时使用的ID请求中指定ID没有采取行动。 | yii\base\Controller |
$id | string | 该控制器的ID。 | yii\base\Controller |
$layout | null|string|false | 布局的名称应用到该控制器的观点。 | yii\base\Controller |
$module | yii\base\Module | 该模块属于这个控制器。 | yii\base\Controller |
公共方法
隐藏继承方法方法 | 描述 | 定义在 |
---|---|---|
__construct() | yii\base\Controller | |
actions() | 声明的外部动作控制器。 | yii\base\Controller |
afterAction() | 调用该方法之后执行一个动作 | yii\base\Controller |
beforeAction() | 这个方法被调用之前执行一个动作。 | yii\base\Controller |
bindActionParams() | 将参数绑定到行动。 | yii\base\Controller |
createAction() | 创建一个行动基于给定的行动ID。 | yii\base\Controller |
findLayoutFile() | 发现适用的布局文件。 | yii\base\Controller |
getModules() | 返回所有祖先模块的控制器。 | yii\base\Controller |
getRoute() | 返回当前请求的路径。 | yii\base\Controller |
getUniqueId() | 返回控制器的惟一ID。 | yii\base\Controller |
getView() | 返回的视图对象可以用来渲染视图或视图文件。 | yii\base\Controller |
getViewPath() | 为该控制器返回的目录,其中包含视图文件。 | yii\base\Controller |
render() | 渲染一个视图和应用布局如果可用。 | yii\base\Controller |
renderContent() | 通过应用一个布局呈现一个静态的字符串。 | yii\base\Controller |
renderFile() | 渲染一个视图文件。 | yii\base\Controller |
renderPartial() | 渲染一个视图没有应用布局。 | yii\base\Controller |
run() | 运行一个请求中指定的路线 | yii\base\Controller |
runAction() | 运行一个动作在这个控制器使用ID和指定的操作参数。 | yii\base\Controller |
setView() | 设置视图对象使用这个控制器。 | yii\base\Controller |
setViewPath() | 集包含视图的目录文件。 | yii\base\Controller |
事件
隐藏继承事件事件 | 类型 | 描述 | 定义在 |
---|---|---|---|
EVENT_AFTER_ACTION | yii\base\ActionEvent | 一个事件之后执行一个控制器动作。 | yii\base\Controller |
EVENT_BEFORE_ACTION | yii\base\ActionEvent | 一个事件之前执行一个控制器动作。 | yii\base\Controller |
属性详情
$action public property目前正在执行的行动。这个属性将通过运行()时, yii\base\Application运行一个行动。
public yii\base\Action $action = null
$defaultAction public property
行动时使用的ID请求中指定ID没有采取行动。默认为“指数”。
public string $defaultAction = 'index'
$id public property
该控制器的ID.
public string $id = null
$layout public property
布局的名称应用到该控制器的观点。此属性主要影响渲染render().的行为。默认为零,这意味着实际布局值应该从模块$module的布局的继承。如果错误,没有布局将被应用。
public null|string|false $layout = null
$module public property
他模块,控制器属于。
public yii\base\Module $module = null
方法详情
__construct() public 方法public void __construct ( $id, $module, $config = [] ) | ||
$id | string | 该控制器的ID。 |
$module | yii\base\Module | 该模块属于这个控制器。 |
$config | array | 名称-值对将用于初始化对象的属性。 |
Declares external actions for the controller.
这个方法是重写声明外部行为的控制器。它应该返回一个数组,数组键操作id,和数组值相应的action类名称或操作配置阵列。例如,
return [ 'action1' => 'app\components\Action1', 'action2' => [ 'class' => 'app\components\Action2', 'property1' => 'value1', 'property2' => 'value2', ], ];
Yii:createObject()稍后将用于创建请求的操作使用这里提供的配置。
public void actions ( ) |
调用该方法之后执行一个动作。
该方法将触发EVENT_AFTER_ACTION事件。该方法的返回值将被用作操作的返回值。
如果你重写此方法,您的代码应该类似于下面的:
public function afterAction($action, $result) { $result = parent::afterAction($action, $result); // your custom code here return $result; }
public mixed afterAction ( $action, $result ) | ||
$action | yii\base\Action | 执行的行动。 |
$result | mixed | 操作返回结果。 |
return | mixed | 处理行动的结果。 |
---|
这个方法被调用之前执行一个动作。
该方法将触发EVENT_BEFORE_ACTION事件。方法的返回值将决定行为应该继续运行
行动不应该运行的,请求应beforeAction代码的内部处理提供必要的输出或重定向请求。否则响应将是空的。
如果你重写此方法,您的代码应该类似于下面的:
public function beforeAction($action) { // your custom code here, if you want the code to run before action filters, // which are triggered on the [[EVENT_BEFORE_ACTION]] event, e.g. PageCache or AccessControl if (!parent::beforeAction($action)) { return false; } // other custom code here return true; // or false to not run the action }
public boolean beforeAction ( $action ) | ||
$action | yii\base\Action | 要执行的动作。 |
return | boolean | 动作是否应该继续运行。 |
---|
将参数绑定到行动。
调用该方法,yii \基地\行动时开始使用给定的运行参数
public array bindActionParams ( $action, $params ) | ||
$action | yii\base\Action | 动作用参数。 |
$params | array | 将参数绑定到行动。 |
return | array | 有效的动作可以运行的参数。 |
---|
创建一个行动基于给定的行动ID。
方法首先检查如果行动ID已经宣布在行动()。如果是这样,它将使用配置宣布创建操作对象。如果不是,它会寻找一个控制器方法,他的名字叫actionXyz,Xyz格式的代表动作ID。如果找到,yii\base\InlineAction 代表该方法将创建并返回。
public yii\base\Action createAction ( $id ) | ||
$id | string | 行动ID。 |
return | yii\base\Action | 新创建的实例。空如果ID不解决任何行动。 |
---|
Finds the applicable layout file.
public string|boolean findLayoutFile ( $view ) | ||
$view | yii\base\View | 视图对象呈现布局文件。 |
return | string|boolean | 布局文件的路径,或假如果布局不需要。请参阅渲染 render()如何指定这个参数。 |
---|---|---|
throws | yii\base\InvalidParamException | 如果一个无效的路径别名用于指定布局。 |
返回所有祖先模块的控制器。
数组中的第一个模块是一个(即最外层。应用程序实例),而最后一个是最里面的一个。
public yii\base\Module[] getModules ( ) | ||
return | yii\base\Module[] | 这个控制器是位于所有祖先模块。 |
---|
返回当前请求的路径。
public string getRoute ( ) | ||
return | string | 路线(module ID,controller ID和action ID)当前的请求。 |
---|
返回控制器的惟一ID
public string getUniqueId ( ) | ||
return | string | 控制器前缀的ID模块ID(如果有的话)。 |
---|
返回的视图对象可以用来渲染视图或视图文件。
render(), renderPartial() and renderFile()方法将使用这个视图对象来实现实际的观点呈现。如果没有设置,它将默认为“视图”应用程序组件。
public yii\base\View|yii\web\View getView ( ) | ||
return | yii\base\View|yii\web\View | 视图对象可以用来渲染视图或视图文件。 |
---|
为该控制器返回的目录,其中包含视图文件。
默认实现返回目录命名为id下控制器$module's \yii\base\viewPath目录。
public string getViewPath ( ) | ||
return | string | 为该控制器包含视图的目录文件. |
---|
渲染一个视图和应用布局如果可用
可以在一个指定的视图呈现下列格式:
如路径别名 (e.g. "@app/views/site/index");
绝对路径在应用程序(如。“/ /网站/指数”):视图名始于双斜杠。实际的视图文件将寻找下yii \ \应用基础::viewPath应用程序。
绝对路径内模块(如。“/网站/指数”):视图名始于一个斜杠。实际的视图文件将寻找下yii\base\Module::viewPath 的$module.
相对路径(如。“指数”):实际的视图文件将寻找下\yii\base\viewPath.基地
确定哪些布局应该应用,以下两个步骤进行:
在第一步,它决定了布局名称和内容模块:
如果$layout被指定为一个字符串,用它作为布局名称和美元模块上下文模块;
如果如果$layout 是null,搜索所有祖先模块的控制器和找到第一个模块的布局不是零。布局和相应的模块用于布局名称和上下文模块,分别。如果没有找到这样一个模块或相应的布局不是一个字符串,它将返回false,这意味着没有适用的布局
在第二步中,它决定了实际布局文件根据先前发现的布局模块名称和上下文。布局名称可以:
如路径别名 (e.g. "@app/views/layouts/main");
一个绝对路径(e.g. "/main"”):布局名称始于一个斜杠。实际的布局文件将寻找下yii\base\Application::layoutPath应用;
(如一个相对路径。“"main"”):实际的布局文件将寻找下yii\base\Module::layoutPath上下文。
如果布局名称不包含一个文件扩展名,它将使用默认一个。php。
public string render ( $view, $params = [] ) | ||
$view | string | 视图的名称。 |
$params | array | 参数(名称-值对)应该在视图中可用。这些参数在布局将不可用。 |
return | string | 呈现的结果。 |
---|---|---|
throws | yii\base\InvalidParamException | if the view file or the layout file does not exist. |
Renders a static string by applying a layout.
public string renderContent ( $content ) | ||
$content | string | 静态字符串被呈现 |
return | string | 用给定的静态布局的渲染结果字符串 $content。如果布局是禁用的,字符串将被返回。 |
---|
渲染一个视图文件。
public string renderFile ( $file, $params = [] ) | ||
$file | string | 要呈现的视图文件。这可以是一个文件路径或路径别名。 |
$params | array | 参数(名称-值对)应该在视图中可用。 |
return | string | 呈现的结果。 |
---|---|---|
throws | yii\base\InvalidParamException | 如果视图文件不存在。 |
渲染一个视图没有应用布局。
这种方法与渲染()的不同之处在于,它不适用任何布局。
public string renderPartial ( $view, $params = [] ) | ||
$view | string | 视图的名称。请参阅渲染()如何指定一个视图名称。 |
$params | array | 参数(名称-值对)应该在视图中可用。 |
return | string | 呈现的结果. |
---|---|---|
throws | yii\base\InvalidParamException | 如果视图文件不存在。 |
运行一个请求中指定的路线。
The route can be either an ID of an action within this controller or a complete route consisting of module IDs, controller ID and action ID. If the route starts with a slash '/', the parsing of the route will start from the application; otherwise, it will start from the parent module of this controller.
参见 runAction().
public mixed run ( $route, $params = [] ) | ||
$route | string | 路由处理,例如“视图”,“评论/视图”,“/ admin /评论/视图”。 |
$params | array | 参数被传递到行动。 |
return | mixed | 行动的结果。 |
---|
运行一个动作在这个控制器使用ID和指定的操作参数。
如果行动ID为空,该方法将使用 $defaultAction.
参见 createAction().
public mixed runAction ( $id, $params = [] ) | ||
$id | string | 要执行的动作的ID。 |
$params | array | (名称-值对)的参数传递到行动。 |
return | mixed | 行动的结果。 |
---|---|---|
throws | yii\base\InvalidRouteException | 如果所请求的操作ID无法解决行动成功。 |
设置视图对象使用这个控制器。
public void setView ( $view ) | ||
$view | yii\base\View|yii\web\View | 视图对象可以用来渲染视图或视图文件。 |
集包含视图的目录文件。
public void setViewPath ( $path ) | ||
$path | string | 视图文件的根目录. |
throws | yii\base\InvalidParamException | 如果目录是无效的 |
---|
事件详情
EVENT_AFTER_ACTION yii\base\ActionEvent基础类型的事件一个事件之后执行一个控制器动作.
EVENT_BEFORE_ACTION yii\base\ActionEvent基础类型的事件
.一个事件之前执行一个控制器动作。你可以设置yii\base\ActionEvent::$isValid 是错误的取消操作执行。
相关文章推荐
- Class yii\base\ActionEvent
- Class yii\base\Action
- Class yii\base\View
- Class yii\base\InvalidValueException
- Class yii\base\Response
- Class yii\base\InvalidRouteException
- Class yii\base\Object
- Abstract Class yii\base\Request
- Class yii\base\InvalidParamException
- Class yii\base\Module
- Class yii\base\NotSupportedException
- Class yii\base\ErrorException
- Class yii\base\InvalidConfigException
- Class yii\base\ModelEvent
- Yii2基类控制器文件分析(yii\base\Controller.php)创建动作执行动作
- Class yii\base\DynamicModel
- Class yii\base\InvalidCallException
- Class yii\base\Model
- Class yii\base\InlineAction
- Class yii\base\Component