Я новичок в Yii, и я борюсь с отображением некоторых классов.
У меня есть очень простой пример:
Я получил свой файл шаблона: themes / classic / views / layout / main.php, и я хочу вызвать там класс.
<div class="col-lg-2 col-md-2 col-sm-2">
<div class="box">
<h2>Categorieën</h2>
<p>
<?php
echo AdminController::producten(); //<--- this does not work!
?>
</p>
</div><!-- box -->
</div><!-- col-lg-2 -->
Класс защищен / controllers / AdminController.php
В этом классе у меня есть функция с именем producten ()
public function producten(){
return 'Hier komen categorieën!';
}
Я хочу просмотреть эту функцию (в данном случае строку) на моей странице шаблона.
Ребята, вы можете показать мне, как, если это возможно, конечно. Или я должен использовать виджет?
Для того, чтобы приведенный ниже код работал:
echo AdminController::producten();
Вы должны изменить свой метод на статический метод, как показано ниже:
public static function producten(){
return 'Hier komen categorieën!';
}
С другой стороны, если ваш контроллер расширен от базового контроллера, который содержит ваш основной макет, вы можете использовать $this
Ключевое слово, чтобы получить метод.
При установке свежего базовый контроллер веб-приложения yii находится под /protected/components/Controller.php
что все контроллеры будут расширять это. Поэтому, если вы поместите свой метод в этот контроллер, он будет доступен через все контроллеры, которые расширены от базового контроллера.
Других решений пока нет …