上QQ阅读APP看书,第一时间看更新
Using the controller context in a view
Yii views are pretty powerful and have many features. One of them is that you can use controller context in a view. So, let's try it.
Getting ready
Set up a new application using yiic webapp
.
How to do it...
- Create a controller as follows:
class WebsiteController extends CController { function actionIndex() { $this->pageTitle = 'Controller context test'; $this->render('index'); } function hello() { if(!empty($_GET['name'])) echo 'Hello, '.$_GET['name'].'!'; } }
- Now, we will create a view showing what we can do:
<h1><?php echo $this->pageTitle?></h1> <p>Hello call. <?php $this->hello()?></p> <?php $this->widget('zii.widgets.CMenu',array( 'items'=>array( array('label'=>'Home', 'url'=>array('index')), array('label'=>'Yiiframework home', 'url'=>'http://yiiframework.ru/'), ), ))?>
- In order to test it you can follow
/index.php?r=website/index
.
How it works...
We are using $this
in a view to refer to a currently running controller. When doing it, we can call a controller method and access its properties. The most useful property is pageTitle
, which refers to the current page title. There are many built-in methods that are extremely useful in views such as renderPartials
and widget
.
There's more…
The following URL contains API documentation for CController
where you can get a good list of methods you can use in your view: