Home  >  Article  >  Backend Development  >  Yii Framework Official Guide Series 9 - Basics: Views

Yii Framework Official Guide Series 9 - Basics: Views

黄舟
黄舟Original
2017-02-11 09:38:401118browse



A view is a PHP script that contains the main user interaction elements. It can contain PHP statements, but we recommend that these statements do not change the data. model, and it is best to keep it simple (only as a view). In order to achieve separation of logic and interface, large sections of logic should be placed in the controller or model rather than in the view.

The view has a name, and when rendering (render), the name will be used to identify the view script file. The name of the view is the same as the name of its view script. For example: the name of the view edit comes from a script file named edit.php. To render, you need to call CController::render by passing the name of the view. (). This method will search for the corresponding view file in the protected/views/ControllerID directory.

Inside the view script, we can access the controller instance through $this. We can use $this-> propertyName or get any property of the controller.

We can also use the following push method to pass data to the view:


$this->render('edit', array(
    'var1'=>$value1,
    'var2'=>$value2,
));

In the above method, the render() method will extract the second parameter of the array into a variable. The result is that in the view script, we can directly access the variables $var1 and $var2.

1. Layout

Layout is a special view file used to modify the view. It usually contains a common part of the view in the user interface. For example: the layout can include header and footer part, and then embed the content within it.


##

......header here......
<?php echo $content; ?>
......footer here......

$content stores the content The rendering result of the view.

When using render(), the layout is implicitly applied. The view script

protected/views/layouts/main.php is the default layout file. This can be customized by changing CWebApplication::layout or CWebApplication::layout. To render a view without layout, you need to call renderPartial() .

2. Widget

A widget is an instance of CWidget or its subclass. It is a component mainly used to represent data. Widgets are often embedded in a view to produce complex and independent user interfaces. For example, a calendar widget can be used to render a complex calendar interface. Gizmos make user interfaces more reusable.

We can use a small object according to the following view script:


<?php $this->beginWidget('path.to.WidgetClass'); ?>
...可能会由小物件获取的内容主体...
<?php $this->endWidget(); ?>

or


<?php $this->widget('path.to.WidgetClass'); ?>

The latter is used for components that do not require any body content.

Widgets can customize their performance through configuration. This is done by calling CBaseController::beginWidget or CBaseController::widget to set its initialization property value. For example, when using the CMaskedTextField widget, we want to specify the mask to be used (which can be understood as an output format). We do this by passing an array carrying the initialization values ​​​​of these properties. The key of the array here is the name of the attribute, and the value of the array is the value corresponding to the small object attribute. As shown below:


<?php
$this->widget('CMaskedTextField',array(
    'mask'=>'99/99/9999'
));
?>

Inherit CWidget and override its init() and run() methods, you can define a New widgets:


class MyWidget extends CWidget
{
    public function init()
    {
        // 此方法会被 CController::beginWidget() 调用
    }

    public function run()
    {
        // 此方法会被 CController::endWidget() 调用
    }
}

##A widget can have its own view just like a controller

. By default, the view files of small objects are located under the views subdirectory of the directory containing the small object class files. These views can be rendered by calling CWidget::render(), much like controllers. The only difference is that the widget's view does not have layout file support. In addition, $this in the widget view points to the widget instance rather than the controller instance. 3. System view

The rendering of system view is usually used to display Yii errors and log information. For example, when a user request comes from a controller or action that does not exist, Yii will throw an exception to explain the error. At this time, Yii will use a special system view to display the error.

The naming of system views follows some rules. For example, a name like

errorXXX

is used to render the CHttpException view showing the error number XXX. For example, if CHttpException throws a 404 error, then error404 will be displayed. Under

framework/views

, Yii provides a series of default system views. They can be customized by creating a view file with the same name under protected/views/system. The above is the Yii Framework Official Guide Series 9 - Basic Knowledge: View Contents. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn