您的位置:首页 > 编程语言 > PHP开发

Class yii\base\Controller

2017-03-06 00:00 489 查看
所有类 | 属性 | 方法 | 事件

继承yii\base\Controller » yii\base\Component » yii\base\Object
实现yii\base\ViewContextInterface
可用自版本2.0
控制器包含控制器逻辑类的基类。

更多细节和使用控制器的信息,请参阅指南文章控制器。

公共属性

隐藏继承属性

属性类型描述定义在
$actionyii\base\Action目前正在执行的行动。yii\base\Controller
$defaultActionstring行动时使用的ID请求中指定ID没有采取行动。yii\base\Controller
$idstring该控制器的ID。yii\base\Controller
$layoutnull|string|false布局的名称应用到该控制器的观点。yii\base\Controller
$moduleyii\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_ACTIONyii\base\ActionEvent一个事件之后执行一个控制器动作。yii\base\Controller
EVENT_BEFORE_ACTIONyii\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 = [] )
$idstring该控制器的ID。
$moduleyii\base\Module该模块属于这个控制器。
$configarray名称-值对将用于初始化对象的属性。
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 )
$actionyii\base\Action执行的行动。
$resultmixed操作返回结果。
returnmixed处理行动的结果。
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 )
$actionyii\base\Action要执行的动作。
returnboolean动作是否应该继续运行。
bindActionParams() public 方法

将参数绑定到行动。

调用该方法,yii \基地\行动时开始使用给定的运行参数

public array bindActionParams ( $action, $params )
$actionyii\base\Action动作用参数。
$paramsarray将参数绑定到行动。
returnarray有效的动作可以运行的参数。
createAction() public 方法

创建一个行动基于给定的行动ID。

方法首先检查如果行动ID已经宣布在行动()。如果是这样,它将使用配置宣布创建操作对象。如果不是,它会寻找一个控制器方法,他的名字叫actionXyz,Xyz格式的代表动作ID。如果找到,yii\base\InlineAction 代表该方法将创建并返回。

public yii\base\Action createAction ( $id )
$idstring行动ID。
returnyii\base\Action新创建的实例。空如果ID不解决任何行动。
findLayoutFile() public 方法

Finds the applicable layout file.

public string|boolean findLayoutFile ( $view )
$viewyii\base\View视图对象呈现布局文件。
returnstring|boolean布局文件的路径,或假如果布局不需要。请参阅渲染 render()如何指定这个参数。
throwsyii\base\InvalidParamException如果一个无效的路径别名用于指定布局。
getModules() public 方法

返回所有祖先模块的控制器。

数组中的第一个模块是一个(即最外层。应用程序实例),而最后一个是最里面的一个。

public yii\base\Module[] getModules ( )
returnyii\base\Module[]这个控制器是位于所有祖先模块。
getRoute() public 方法

返回当前请求的路径。

public string getRoute ( )
returnstring路线(module ID,controller ID和action ID)当前的请求。
getUniqueId() public 方法

返回控制器的惟一ID

public string getUniqueId ( )
returnstring控制器前缀的ID模块ID(如果有的话)。
getView() public 方法

返回的视图对象可以用来渲染视图或视图文件。

render(), renderPartial() and renderFile()方法将使用这个视图对象来实现实际的观点呈现。如果没有设置,它将默认为“视图”应用程序组件。

public yii\base\View|yii\web\View getView ( )
returnyii\base\View|yii\web\View视图对象可以用来渲染视图或视图文件。
getViewPath() public 方法

为该控制器返回的目录,其中包含视图文件。

默认实现返回目录命名为id下控制器$module's \yii\base\viewPath目录。

public string getViewPath ( )
returnstring为该控制器包含视图的目录文件.
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 = [] )
$viewstring视图的名称。
$paramsarray参数(名称-值对)应该在视图中可用。这些参数在布局将不可用。
returnstring呈现的结果。
throwsyii\base\InvalidParamExceptionif 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 )
$contentstring静态字符串被呈现
returnstring用给定的静态布局的渲染结果字符串
$content
。如果布局是禁用的,字符串将被返回。
renderFile() public 方法

渲染一个视图文件。

public string renderFile ( $file, $params = [] )
$filestring要呈现的视图文件。这可以是一个文件路径或路径别名。
$paramsarray参数(名称-值对)应该在视图中可用。
returnstring呈现的结果。
throwsyii\base\InvalidParamException如果视图文件不存在。
renderPartial() public 方法

渲染一个视图没有应用布局。

这种方法与渲染()的不同之处在于,它不适用任何布局。

public string renderPartial ( $view, $params = [] )
$viewstring视图的名称。请参阅渲染()如何指定一个视图名称。
$paramsarray参数(名称-值对)应该在视图中可用。
returnstring呈现的结果.
throwsyii\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 = [] )
$routestring路由处理,例如“视图”,“评论/视图”,“/ admin /评论/视图”。
$paramsarray参数被传递到行动。
returnmixed行动的结果。
runAction() public 方法

运行一个动作在这个控制器使用ID和指定的操作参数。

如果行动ID为空,该方法将使用 $defaultAction.

参见 createAction().

public mixed runAction ( $id, $params = [] )
$idstring要执行的动作的ID。
$paramsarray(名称-值对)的参数传递到行动。
returnmixed行动的结果。
throwsyii\base\InvalidRouteException如果所请求的操作ID无法解决行动成功。
setView() public 方法

设置视图对象使用这个控制器。

public void setView ( $view )
$viewyii\base\View|yii\web\View视图对象可以用来渲染视图或视图文件。
setViewPath() public 方法 (可用自版本 2.0.7)

集包含视图的目录文件。

public void setViewPath ( $path )
$pathstring视图文件的根目录.
throwsyii\base\InvalidParamException如果目录是无效的

事件详情

EVENT_AFTER_ACTION yii\base\ActionEvent基础类型的事件

一个事件之后执行一个控制器动作.

EVENT_BEFORE_ACTION yii\base\ActionEvent基础类型的事件

.一个事件之前执行一个控制器动作。你可以设置yii\base\ActionEvent::$isValid 是错误的取消操作执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: