继承 | 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.
$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 | 名称-值对将用于初始化对象的属性。 |
actions() public 方法
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 ( ) |
afterAction() public 方法
调用该方法之后执行一个动作。
该方法将触发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 | 处理行动的结果。 |
---|
beforeAction() public 方法
这个方法被调用之前执行一个动作。
该方法将触发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 | 动作是否应该继续运行。 |
---|
bindActionParams() public 方法
将参数绑定到行动。
调用该方法,yii \基地\行动时开始使用给定的运行参数
public array bindActionParams ( $action, $params ) | ||
$action | yii\base\Action | 动作用参数。 |
$params | array | 将参数绑定到行动。 |
return | array | 有效的动作可以运行的参数。 |
---|
createAction() public 方法
创建一个行动基于给定的行动ID。
方法首先检查如果行动ID已经宣布在行动()。如果是这样,它将使用配置宣布创建操作对象。如果不是,它会寻找一个控制器方法,他的名字叫actionXyz,Xyz格式的代表动作ID。如果找到,yii\base\InlineAction 代表该方法将创建并返回。
public yii\base\Action createAction ( $id ) | ||
$id | string | 行动ID。 |
return | yii\base\Action | 新创建的实例。空如果ID不解决任何行动。 |
---|
findLayoutFile() public 方法
Finds the applicable layout file.
public string|boolean findLayoutFile ( $view ) | ||
$view | yii\base\View | 视图对象呈现布局文件。 |
return | string|boolean | 布局文件的路径,或假如果布局不需要。请参阅渲染 render()如何指定这个参数。 |
---|---|---|
throws | yii\base\InvalidParamException | 如果一个无效的路径别名用于指定布局。 |
getModules() public 方法
返回所有祖先模块的控制器。
数组中的第一个模块是一个(即最外层。应用程序实例),而最后一个是最里面的一个。
public yii\base\Module[] getModules ( ) | ||
return | yii\base\Module[] | 这个控制器是位于所有祖先模块。 |
---|
getRoute() public 方法
返回当前请求的路径。
public string getRoute ( ) | ||
return | string | 路线(module ID,controller ID和action ID)当前的请求。 |
---|
getUniqueId() public 方法
返回控制器的惟一ID
public string getUniqueId ( ) | ||
return | string | 控制器前缀的ID模块ID(如果有的话)。 |
---|
getView() public 方法
返回的视图对象可以用来渲染视图或视图文件。
render(), renderPartial() and renderFile()方法将使用这个视图对象来实现实际的观点呈现。如果没有设置,它将默认为“视图”应用程序组件。
public yii\base\View|yii\web\View getView ( ) | ||
return | yii\base\View|yii\web\View | 视图对象可以用来渲染视图或视图文件。 |
---|
getViewPath() public 方法
为该控制器返回的目录,其中包含视图文件。
默认实现返回目录命名为id下控制器$module's \yii\base\viewPath目录。
public string getViewPath ( ) | ||
return | string | 为该控制器包含视图的目录文件. |
---|
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。
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. |
renderContent() public 方法 (可用自版本 2.0.1)
Renders a static string by applying a layout.
public string renderContent ( $content ) | ||
$content | string | 静态字符串被呈现 |
return | string | 用给定的静态布局的渲染结果字符串 |
---|
renderFile() public 方法
渲染一个视图文件。
public string renderFile ( $file, $params = [] ) | ||
$file | string | 要呈现的视图文件。这可以是一个文件路径或路径别名。 |
$params | array | 参数(名称-值对)应该在视图中可用。 |
return | string | 呈现的结果。 |
---|---|---|
throws | yii\base\InvalidParamException | 如果视图文件不存在。 |
renderPartial() public 方法
渲染一个视图没有应用布局。
这种方法与渲染()的不同之处在于,它不适用任何布局。
public string renderPartial ( $view, $params = [] ) | ||
$view | string | 视图的名称。请参阅渲染()如何指定一个视图名称。 |
$params | array | 参数(名称-值对)应该在视图中可用。 |
return | string | 呈现的结果. |
---|---|---|
throws | yii\base\InvalidParamException | 如果视图文件不存在。 |
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().
public mixed run ( $route, $params = [] ) | ||
$route | string | 路由处理,例如“视图”,“评论/视图”,“/ admin /评论/视图”。 |
$params | array | 参数被传递到行动。 |
return | mixed | 行动的结果。 |
---|
runAction() public 方法
运行一个动作在这个控制器使用ID和指定的操作参数。
如果行动ID为空,该方法将使用 $defaultAction.
参见 createAction().
public mixed runAction ( $id, $params = [] ) | ||
$id | string | 要执行的动作的ID。 |
$params | array | (名称-值对)的参数传递到行动。 |
return | mixed | 行动的结果。 |
---|---|---|
throws | yii\base\InvalidRouteException | 如果所请求的操作ID无法解决行动成功。 |
setView() public 方法
设置视图对象使用这个控制器。
public void setView ( $view ) | ||
$view | yii\base\View|yii\web\View | 视图对象可以用来渲染视图或视图文件。 |
setViewPath() public 方法 (可用自版本 2.0.7)
集包含视图的目录文件。
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 是错误的取消操作执行。