首頁 >後端開發 >php教程 >詳解Yii2使用$this->context取得目前的Module,Controller(控制器),Action等

詳解Yii2使用$this->context取得目前的Module,Controller(控制器),Action等

黄舟
黄舟原創
2017-03-30 09:06:061589瀏覽

使用Yii2的時候,在某些場景和環境下需要獲得Yii2目前所處於的module(模型)、Controller(控制器) 、Action(方法),以及會呼叫控制器裡面已經定義過的一些公共的方法等.對於這些問題Yii2可以在視圖層View中使用$this-> context這個物件去取得。下面透過範例程式碼跟大家講解下

使用Yii2的時候,在某些場景和環境下需要獲得Yii2目前所處於的module(模型)、Controller(控制器)、Action(方法),以及會呼叫控制器裡面已經定義過的一些公共的方法等.對於這些問題Yii2可以在視圖層View中使用$this->context這個物件去取得。

範例:譬如現在(視圖層登陸介面)login.php方法下面:

<?php
//得到Yii2的当前的控制器Controller
echo
$this->context->id;
//输出结果:site
//得到Yii2的当前的控制器Action
echo
$this->context->action->id;
//输出结果:login
//得到Yii2的当前的控制器Modules
echo
$this->context->module->id;
//输出结果:basic
 (默认简单的Basic)
//得到Yii2的当前的控制器里面的方法
echo
$this->context->actionHello();
//输出结果:Hello
 World!!!
//此处的actionHello()
 方法为定义在控制器里面的方法(也可以是继承来的)
//所在位置为SiteController里面,用于测试
public
function 
actionHello(){
  return
&#39;Hello World!!!&#39;;
}
?>

在控制器裡面

$controllerID
= Yii::$app->controller->id;
$actionID
= Yii::$app->controller->action->id;

以上是詳解Yii2使用$this->context取得目前的Module,Controller(控制器),Action等的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn