在一个视图中使用控制器上下文
Yii视图非常强大,并且有许多特性。其中一个就是你可以在一个视图中使用控制器上下文。所以,我们来试下吧。
准备
按照官方指南http://www.yiiframework.com/doc-2.0/guide-start-installation.html的描述,使用Composer包管理器创建一个新的应用。
如何做...
- 创建
controllers/ViewController.php
:
<?php
namespace app\controllers;
use yii\web\Controller;
class ViewController extends Controller
{
public $pageTitle;
public function actionIndex()
{
$this->pageTitle = 'Controller context test';
return $this->render('index');
}
public function hello()
{
if (!empty($_GET['name'])) {
echo 'Hello, ' . $_GET['name'] . '!';
}
}
}
- 现在,我们创建
views/view.php
来展示我们可以做的事情:
<h1><?= $this->context->pageTitle ?></h1>
<p>Hello call. <?php $this->context->hello() ?></p>
- 为了测试它,你可以访问
/index.php?r=view/index&name=Alex
:
工作原理...
我们在一个视图中使用$this
来引用当前运行的控制器。当做这些事情的时候,我们可以调用一个控制器方法,并访问他的属性。最常使用的属性是pageTitle
,它表示当前页面的标题。在视图中,有许多内置的方法特别有用,例如renderPartials
和小组件。
更多...
http://www.yiiframework.com/doc-2.0/guide-structure-views.html#accessing-data-in-views地址包含了CController
的API文档,这里你可以到方法的列表,这些你可以用在你的视图中。