Вопрос

Я не могу установить динамическую переменную $ template для сайта, созданного на Kohana.

Если я расширю класс Template_Controller, я могу установить имя шаблона следующим образом:

public $template = 'template_file_name';

Но я не могу установить его динамически, как:

public $template = $this->setTemplate();

или

switch($var):
    default:
       public $template = 'filename';
       break;
endswitch;

Изменение переменной $ template с помощью $ this-> gt; template в конструкторе как-то нарушает Template_Controller:

  

Неустранимая ошибка: вызов функции-члена render () для необъекта

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

Есть идеи, как сделать это возможным?

Это было полезно?

Решение

эта ссылка может иметь ответ:

http://stii.co.za/ PHP / переопределение-умолчанию-шаблон-в-Кохана-PHP /

просто запустите конструктор шаблона следующим образом:

public function __construct()
    {
        $this->template = 'foobar';
        parent::__construct();
    }

Другие советы

Я делаю это так:

public function action_myaction()
{
    // template
    $this->template = "template/overlay";
    parent::before();

    // display
    $this->template->title = 'My Action';
    $this->template->content = View::factory('myaction')
}

Больше информации здесь: http://www.workinprogress.ca/kohana32/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top