Yii2为所有应用程序的操作创建全局动态值

时间:2015-06-10 22:44:47

标签: php oop yii2

我想将当前路径信息(即controller / action / params)传递给一个小部件,该小部件使用另一个模型在应用程序的视图中生成一些静态HTML内容,包括布局。

为了实现这一目标,我已经定义了以下控制器protected void btnTestDb_Click(object sender, EventArgs e) { string result = TestConnection(); Response.Write(result); } private string TestConnection() { try { using(SqlConnection connection = new SqlConnection("....")) { connection.Open(); return "Connection opened correctly"; } } catch(Exception ex) { return "Error opening the connection:" + ex.Message; } } ,并且我使所有的app控制器都扩展了它而不是AppController

yii\web\Controller;

例如,在SiteController中:

<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;

class AppController extends Controller
{
  public function __construct($id, $module, $config = array()) {
    parent::__construct($id, $module, $config);
    $this->view->params['path2'] = Yii::$app->controller->id;
  }  
  /*
  public function beforeAction($action) {
    parent::beforeAction($action);
    $this->view->params['path2'] = Yii::$app->controller->id;
  }  */

}

问题处于任何class SiteController extends AppController {... 操作的任何视图中,因为eaxmple SiteController about在我希望它回显echo $this->params['path2']时返回空白。此外,取消注释site会使所有SiteController操作产生空白页。

我需要以任何方式允许全局地将beforeAction值设置为当前$this->params['path2'],而不管重写的路径是什么。

0 个答案:

没有答案