Повторно используемые элементы в основном макете CakePHP

Я хотел бы использовать разные представления в моем макете по умолчанию.

«default.ctp» — мой основной шаблон макета, и в настоящее время он извлекает содержимое только из «view/posts/index.ctp», однако я также хотел бы включить мою форму добавления новостей («view/posts/add. ctp') в этом шаблоне.

Легко ли этого добиться?

Я просмотрел руководство по «элементам», но это не помогло.

Спасибо за любые указатели.


person michaelmcgurk    schedule 03.12.2011    source источник


Ответы (1)


Если вы хотите отображать на странице результат одного действия другого действия, вам может помочь Object::requestAction().

В том месте в представлении (view/posts/index.ctp), где вы хотите отобразить другое представление (view/posts/add.ctp), поставьте этот cpode:

echo $this->requestAction('/posts/add', array('return'));

Подробнее о requestAction

В случае, если вы хотите визуализировать только другой шаблон - View::render() для вас. Этот метод отображает шаблон только без выполнения действия и не работает правильно в тех же ситуациях (например, где используется paginator).

Код:

echo $this->render('/Posts/add', false);

'/Posts/add' - для CakePHP 2, для 1.3 - '/posts/add'

person Empty    schedule 03.12.2011
comment
Спасибо за помощь :-) Я добавил ` ‹?php echo $this-›requestAction('/posts/add', array('return')); ?›` к моему 'index.ctp' и с небольшим количеством покерной мешанины, это сделало свое дело :) Еще раз спасибо, что нашли время, чтобы помочь здесь. Хорошего дня!! - person michaelmcgurk; 03.12.2011