我在许多项目中使用过Yii1。 在大多数情况下,我们在主控制器中有一个名为$ bodyClass的属性,我们在视图中将其用作$ this-> bodyClass。
在Yii2中,$ this引用视图而不是控制器。此外,所有Yii2控制器使用的基本控制器不在应用程序上,而是在yii文件夹本身。
完成我想要做的事情的最佳方法是什么? a)创建我自己的组件/ BaseController。我的所有控制器都将继承它,我将访问视图中的属性$ this-> context-> property b)扩展ViewComponent
优点和缺点?或者我的做法完全错了?
答案 0 :(得分:0)
View类有一个名为$params的属性,因此您可以将控制器中的任何变量传递给View,如下所示:
$this->view->params['param'] = 'value';
在视图中访问
/* @var $this yii\web\View */
echo $this->params['param'];