Не удается получить динамический вид для обновления в браузере - PullRequest
0 голосов
/ 23 марта 2012

Я безуспешно пытался использовать динамическое представление в Kohana 3.2. Я использую следующее представление макета с тремя представлениями (мета, контент и нижний колонтитул).

вид / расположение:

<html>
    <head>
        <?php echo $meta ?>
    </head>
    <body>
        <?php echo $content ?>
        <?php echo $footer ?>
    </body>
<html>

Я могу вначале без проблем визуализировать все три представления (в представлении $ meta есть набор значений по умолчанию), но позже в потоке я назначаю и передаю переменные новому представлению $ meta, но вид не обновляется в моем браузере. Я включил ведение журнала для этого конкретного представления (после того, как переменные были переданы), и кажется, что все в порядке.

// Passing variables to view and rendering view in controller/layout
$this->template->meta = View::factory('meta');
$this->template->meta->url = $this->template->art->url;
$this->template->meta->name = $this->template->art->name;
$this->template->meta->image = $this->template->art->image;
$this->template->meta->about = $this->template->art->about;
$this->response->body($this->template->meta);
Kohana::$log->add(Log::INFO, 'TEMPLATE VALUE: ' . $this->template);

Как можно принудительно обновить конкретное представление в представлении или как заменить представление?

Ответы [ 3 ]

0 голосов
/ 26 марта 2012

Я предполагаю, что вы расширяете Controller, а не Controller_Template, что означает, что вам нужно указать телу на обработку всего шаблона.Поместите этот фрагмент кода в самый конец действия, и он позволит вам редактировать мета, контент или нижний колонтитул, пока вы не отправите эту команду.Возможно, вы отправляете тело слишком рано, а затем пытаетесь изменить его, что будет бесполезно.

$this->response->body($this->template);
0 голосов
/ 28 марта 2012

Оказалось, что контроллер был переопределен другим контроллером.Исходное $ this-> response-> body ($ this-> template-> meta) сработало после отключения некоторых вещей в дальнейшем.

Спасибо всем за помощь, оно было высоко оценено в работе надисправить это.

0 голосов
/ 23 марта 2012

Попробуйте заменить:

$this->response->body($this->template->meta);

На:

$this->response->body($this->template->meta->render());
...