Как использовать разные шаблоны для каждого из представлений внутри контроллера в Kohana 3? - PullRequest
1 голос
/ 01 марта 2011

У меня есть один шаблонный контроллер (например, Controller_DefaultTemplate), а другие (например, Controller_Admin) расширяют его.В учебниках (например, здесь http://www.dealtaker.com/blog/2009/12/30/kohana-php-3-0-ko3-tutorial-part-3/) они делают это в Controller_DefaultTemplate:

public $template = 'admin/index';

, но мне нужны разные виды для различных действий внутри

    class Controller_Admin extends Controller_DefaultTemplate {
    function action_material(){ 
        $template = 'admin/material';
}
    function action_newsedit(){ 
        $template = 'admin/newsedit';
}

... и так далее, возможно ли это?

Ответы [ 3 ]

3 голосов
/ 02 марта 2011

Другой способ - установить имя файла View с помощью метода set_filename().Используя стиль zombor, вы потеряете все переменные, которые были установлены для $this->template.

public function action_newsedit()
{
    // note that $this->template is already View object as we are in Controller_Template
    $this->template->set_filename('admin/newsedit');
}
0 голосов
/ 04 марта 2011

Шаблон - это обертка для всех ваших просмотров.Внутри шаблона у вас будет <?php echo $content; ?>, а затем в действии вы просто вызовете свое представление для размещения внутри этого шаблона.$this->template->content = View::factory('page'); Насколько я понимаю, так оно и должно работать.

0 голосов
/ 02 марта 2011

Конечно, вот так:

public function action_newsedit()
{
    $this->template = new View('admin/newsedit');
}

Шаблон создается в конструкторе контроллера, поэтому вам просто нужно перезаписать его в вашем действии.

...