yii如何能让系统不默认去调用Protected/views/layouts/ 里面的布局文件?_亮仔_新浪博客

Yii模块布局定制
本文介绍如何在Yii框架中为不同模块指定特定的布局文件,包括调整控制器设置和视图文件引用,解决前后端分离项目中布局文件冲突的问题。
在使用yii做开发时,我们通常都是前后台分离
这个时候我没就会想到用yii模块功能,这时候大多数人都会遇到一个问题,前台和后台要用不同的布局文件,这时怎么办呢?其实yii提供这个功能 下面我们就来看看怎么做吧 

我们创建了一个admin的模块  创建一个AdminController.php的控制器




比如说 我要调 这个 modules/admin/views/layouts/ column2.php 这个视图文件 
那么在 contrllers/AdminController.php 这个 controller 文件里 要这样写

public $layout='/layouts/column2';
注意前面是 / 不是 //  

如果是 // 就会默认去调 protected/views/layouts

这里就是 其实 就是 绝对和相对的关系


或者 public $layout='column2';  //column2 可以改成你想用用的文件

ok  到这里问题基本解决了  我在啰嗦一下 有很多人在这里以为工作完成了预览发现视图文件没有改过来  ???怎么回事呢? 也是很多人可能遇到的问题

我们用gii curd 创建生成控制器 默认用的是 column2.php视图文件  

打开 columm2.php的文件发现 
<?php $this->beginContent('//layouts/main'); ?>

原来是这里搞的鬼 哈哈 找到了 我们改一下就好了  

<?php $this->beginContent('/layouts/main'); ?>

或者 
<?php  $this->beginContent('application.modules.admin.views.layouts.main'); ?>

<div class="container">
  <div class="span-19">
    <div id="content">
      <?php echo $content; ?>
    </div><!-- content -->
  </div>
  <div class="span-5 last">
    <div id="sidebar">
    <?php
      $this->beginWidget('zii.widgets.CPortlet', array(
        'title'=>'Operations',
      ));
      $this->widget('zii.widgets.CMenu', array(
        'items'=>$this->menu,
        'htmlOptions'=>array('class'=>'operations'),
      ));
      $this->endWidget();
    ?>
    </div><!-- sidebar -->
  </div>
</div>
<?php $this->endContent(); ?>

结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值