在yii中调用主题中的函数

时间:2015-03-10 07:55:30

标签: php yii yii-url-manager

我的yii第一个项目中有一个文件。我的项目有一个带有此路径的新主题

first_proj\themes\project\views\layouts\main.php

我希望在下面调用一个函数

<?php
    if($is_project_manager){
?>
        <div class="each-pop-el" style="cursor:pointer" ng-click="showAllMemberTask()">show tasks</div>
  <?php } ?>  

并且有功能 first_proj \保护\控制器\ project.php 这是

public function actionIsProjectmanager(){
        $project_manager = false;
            $crt = new CDbCriteria;
            $crt->condition = 'user_id=:uid and role=1';
            $crt->params = array('uid'=>Yii::app()->user->id);
            $project_manager= projectMember::model()->findAll($crt);
            // $model_result = MyModel::model()->test();

            $this->render('the url to theme and main.php file', array('is_project_manager' => $project_manager));
    }

我怎样才能找到那个main.php文件?我必须写什么而不是什么 我的职能是the url to theme and main.php file

3 个答案:

答案 0 :(得分:0)

您将控制器layout设置为该文件。所以它看起来像这样:

$this->layout = 'main';

布局也必须使用视图文件进行渲染。

$this->render('index', array('is_project_manager' => $project_manager));

然后将index.php文件放在views/project文件夹中,并附上操作内容。

这假设您已将配置设置为主题为project

答案 1 :(得分:0)

首先需要知道的是:无需将布局文件传递给视图。当您使用render()函数时,yii会自动为您的视图添加布局。然后,要指定布局,您需要在操作中使用$this->layout = '//layouts/main

答案 2 :(得分:0)

在您的视图中使用此

<?php
    if($this->isProjectmanager){
?>
        <div class="each-pop-el" style="cursor:pointer" ng-click="showAllMemberTask()">show tasks</div>
  <?php } ?> 

并在控制器中创建辅助函数(不是动作!)

public function IsProjectmanager(){
    if ($someConditon) {
       return true;
    }
    else  {
       return false;
    }

    }