Class yii\base\Controller

所有类 | 属性 | 方法 | 事件

继承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.基地

确定哪些布局应该应用,以下两个步骤进行:

  1. 在第一步,它决定了布局名称和内容模块:
  • 如果$layout被指定为一个字符串,用它作为布局名称和美元模块上下文模块;
  • 如果如果$layout 是null,搜索所有祖先模块的控制器和找到第一个模块的布局不是零。布局和相应的模块用于布局名称和上下文模块,分别。如果没有找到这样一个模块或相应的布局不是一个字符串,它将返回false,这意味着没有适用的布局
  1. 在第二步中,它决定了实际布局文件根据先前发现的布局模块名称和上下文。布局名称可以:
  • 如路径别名 (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\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 )
$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 是错误的取消操作执行。

转载于:https://my.oschina.net/u/2552765/blog/852661

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值