Model view controller Yii 2从视图访问控制器的快速方法

Model view controller Yii 2从视图访问控制器的快速方法,model-view-controller,yii2,Model View Controller,Yii2,因此,在Yii 1中,您可以在视图文件中使用$this->action()或$this->property访问控制器的属性/操作 在yii2中,我能看到这一点的唯一方法是使用Yii::$app->controller->property或Yii::$app->controller->action()。我是一个不想写太多代码的人,所以我想知道是否有一个更短的方法来完成它。\Yii::$app->controller,这确实是唯一“真正”的方法 有一种写得少一点的方法,不知是否值得努力: publi

因此,在Yii 1中,您可以在视图文件中使用
$this->action()
$this->property
访问控制器的属性/操作


在yii2中,我能看到这一点的唯一方法是使用
Yii::$app->controller->property
Yii::$app->controller->action()。我是一个不想写太多代码的人,所以我想知道是否有一个更短的方法来完成它。

\Yii::$app->controller
,这确实是唯一“真正”的方法

有一种写得少一点的方法,不知是否值得努力:

public function actionWhatever() 
{
    return $this->render('view', ['controller' => $this]);
}

然后在视图中有一个
$controller
-变量。

视图控制器基本上是调用此视图的呈现的“上下文”

有一个特殊的属性可以从视图中获取当前相关的控制器,它的调用方式与此完全相同:
context

示例:
$this->context

官方文件:


这项功能非常有效,看起来比
Yii::$app->controller更直观如果您正在开发小部件,并且希望从小部件视图文件调用主小部件组件,那么这也很好。