Отображать только указанный вид - CakePHP - PullRequest
1 голос
/ 11 марта 2011

Я хотел бы отобразить представление отдельно, я хочу избежать отображения <head> и других разделов, определенных в файле default.ctp.

У меня есть информация, которую я хочу отобразить в элементе:

<?php

echo $post['Post']['id'];

?>

Как мне это сделать? Это для ответа ajax.

Спасибо!

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Вы можете создать новый макет (например, /app/views/layouts/ajax.ctp), содержащий:

<?php echo $content_for_layout ?>

Затем в вашем контроллере в действии, которое вы используете, определитемакет:

function myaction() {
    $this->layout = 'ajax';
}

Ссылка: http://book.cakephp.org/view/962/Page-related-Attribute-layout

1 голос
/ 11 марта 2011

Просто создайте макет с именем ajax.ctp, который содержит только

<?php
echo $content_for_layout;

тогда в контроллере поставь

$this->layout = 'ajax';

Если вы хотите сделать это программно для всех запросов AJAX, просто добавьте компонент RequestHandler в свой контроллер

var $components = array('RequestHandler'); //and possibly others

и создайте beforeRender метод, подобный

function beforeRender() {
    if ($this->RequestHandler->isAjax()) {
        $this->layout = 'ajax';
        Configure::write('debug', 0);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...