Yii中的动态布局

q3d*_*q3d 1 php sidebar yii

我有一个Yii应用程序,在布局中我有一个静态侧边栏.我想根据控制器操作或视图更改侧边栏的内容.目前,在views/layouts/main.php文件中,我有一个侧边栏定义为:

<div class="sidebar">hello!</div>
Run Code Online (Sandbox Code Playgroud)

当控制器image和动作是test,我想显示这个:

<div class="sidebar">Created at <? echo $image->created_at; ?></div>
Run Code Online (Sandbox Code Playgroud)

$ image对象在image控制器和test操作中定义.

简而言之,我想在控制器image和动作是时显示侧边栏test,但是,我不希望完全具有不同的布局.我怎么能做到这一点?

rin*_*.io 7

这是剪辑的工作.在你的布局中:

<div class="sidebar">
    <?php if(!empty($this->clips['sidebar'])) {
        echo $this->clips['sidebar'];
    } else { ?>
        hello
    <?php } ?>
</div>
Run Code Online (Sandbox Code Playgroud)

在你看来的某个地方:

<?php $this->beginClip('sidebar'); ?>
    Created at <? echo $image->created_at; ?>
<?php $this->endClip(); ?>
Run Code Online (Sandbox Code Playgroud)