2014-02-23 105 views
0

我在Yii中創建了一個管理儀表板。這裏是我的結構如何在Yii模塊中使用main.php

- Protected 
| 
- Modules 
| 
-- Views 
| 
---Layouts 
| 
--- main.php 
--- column1.php 
--- column2.php 
| 
- Themes 
| 
-- Bootstrap 
| 
--- Views 
| 
--- Admin 
| 
---- Layouts 
| 
---- main.php 

出於某種原因,我的管理面板持續讀取main.php在引導文件夾而不是/modules/admin/views/layouts/main.php

/** 
* Base class for all admin controllers. 
*/ 
class AdminController extends CController 
{ 

    /** 
    * @var string the default layout for the controller view. Defaults to '/layouts/column1', 
    * meaning using a single column layout. See 'protected/modules/admin/views/layouts/column2.php'. 
    */ 
    public $layout = '/layouts/column2'; 

    /** 
    * @var string the pageTitle of the current page. 
    */ 
    public $pageTitle = ""; 

    /** 
    * @var array the breadcrumbs of the current page. The value of this property will 
    * be assigned to {@link CBreadcrumbs::links}. Please refer to {@link CBreadcrumbs::links} 
    * for more details on how to specify this property. 
    */ 
    public $breadcrumbs = array(); 

    /** 
    * @var array admin context menu items. This property will be assigned to {@link TbMenu::items}. 
    */ 
    public $adminMenu = array(); 

    /** 
    * @return array action filters 
    */ 
    public function filters() 
    { 
     return array(
      'accessControl', // perform access control for CRUD operations 
     ); 
    } 

    /** 
    * Specifies the access control rules. 
    * This method is used by the 'accessControl' filter. 
    * @return array access control rules 
    */ 
    public function accessRules() 
    { 
     return array(
      array('allow', 
       'users' => array('@'), 
      //'expression' => 'Yii::app()->user->isAdmin' 
      ), 
      array('deny', // deny all users 
       'users' => array('*'), 
      ), 
     ); 
    } 

    public function beforeRender($view) 
    { 
     if ($this->adminMenu && !Yii::app()->user->isGuest) 
      $this->renderPartial('/layouts/clips/_admin_clip'); 

     return parent::beforeRender($view); 
    } 
} 

這裏是我的column2.php

<?php /* @var $this Controller */ ?> 
<?php $this->beginContent('/layouts/main'); ?> 
<div class="row"> 
    <div class="span2" id="sidebar"> 
     <?php 
     //a clip is a piece of captured output that can be inserted elsewhere. 
     if (isset($this->clips['adminMenuClipID'])) 
      echo $this->clips['adminMenuClipID']; 
     ?> 
    </div> 
    <div class="span10" id="main-content"> 
     <?php echo $content; ?> 
    </div> 
</div> 
<?php $this->endContent(); ?> 

我該如何準備main.php/modules/admin/views/layouts/main.php

+0

你可以寫「application.modules.layout.main.php」你在哪裏設置佈局 –

+0

'public $ layout ='application.modules.layout.main.php';'不工作。現在的column2.php不包括 – user2636556

+0

看一下,你可以使用相同的語句。實際上應用程序是指受保護的文件夾當從另一個文件夾中使用訪問文件夾時,您必須使用應用程序。你可以使用'application.modules.layouts.column2.php' –

回答

0

您需要更改路徑裝飾認爲,在CController::beginContent()視圖電話:

$this->beginContent('application.modules.admin.views.layouts.column2') 

假設路徑是modules/admin/views/layouts/column2.php

+0

不。也不工作。使用這個'public $ layout ='/ layouts/column2';'正確讀取'column1.php'和'column2.php'。在生成頁面時只使用錯誤的'main.php'。 – user2636556

+0

更新了答案。 – topher

+0

改變在我的column2.php?如在變化中呢? '$ this-> beginContent('/ layouts/main');' – user2636556

相關問題