вызвать функцию в темах в yii

У меня есть файл в моем первом проекте 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 в моей функции?

0

Решение

Вы устанавливаете контроллеры layout в файл. Так это будет выглядеть так:

$this->layout = 'main';

Макеты также должны быть отображены с помощью файла вида.

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

Затем поместите index.php файл в вашем views/project папка с содержанием действий.

Это предполагает, что вы настроили свой конфиг, чтобы тема была project

0

Другие решения

Первое, что вам нужно знать: Нет необходимости передавать файл макета в представление. Когда вы используете render() функция, YII автоматически добавить макет для вашего представления. Затем, для указания макета, вам нужно использовать $this->layout = '//layouts/main в ваших действиях.

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;
}

}
0
По вопросам рекламы [email protected]