有些内容并不一定会显示在页面中的时候,可以用if包起来,如:<?php if(xxx){?> xxx <?php } ?>,但如果同一个页面需要重复显示这块内容呢,这样做明显冗余了,此时可以用yii2中的数据块。
被数据块包住的代码不会显示在页面中,如下所示,定义了2个数据块:
<?php $this->beginBlock('block1'); ?>
...content of block11111111111111111...
<?php $this->endBlock(); ?>
<?php $this->beginBlock('block2'); ?>
...content of block22222222222222222...
<?php $this->endBlock(); ?>
数据块的调用:
if($gender===1)
{
echo $this->blocks['block1'];
}
else
{
echo $this->blocks['block2'];
}
适用场景:一个页面有多处一样内容的时候,用数据块可以节省代码量,可以更优美,也更方便后期的维护。