CakePHP динамический элемент - PullRequest
0 голосов
/ 15 июня 2010

Я пытаюсь создать элемент типа доски объявлений в приложении CakePHP. Этот элемент будет отображаться на всех страницах и в представлениях, которые используют определенный макет. Я хочу, чтобы он отображал все сообщения в модели, затем отображал форму добавления при нажатии на ссылку, а затем возвращался к обновленному списку сообщений после отправки. Все это не влияет на текущий вид / страницу.

У меня настроена модель сообщения / контроллер / индекс с элементом доски объявлений, который запрашивает действие индекса. Это отлично работает. Однако я озадачен тем, как вернуться к исходной странице / действию, с которого была нажата ссылка. Я не могу использовать $ this-> referer (), потому что это будет ссылаться на действие add (); скорее я хочу сделать ссылку на страницу / представление до этого.

Какие-нибудь общие указания о том, как добиться чего-то подобного?

1 Ответ

0 голосов
/ 15 июня 2010

Я бы подошел к этому с помощью Ajax и использовал макет Ajax.

$this->layout('ajax')

Тогда вы сможете настроить полный стек для обработки этого и передавать различные вещи в качестве параметров в действия контроллера.

При использовании Ajax вам не нужно беспокоиться о передаче пары контроллер / действие реферера. Вы также можете использовать возврат из этого, чтобы обновить список, вызвав MessagesController. Дополнительным бонусом этого является то, что вы можете просто переключать раскладку в ваших реальных контроллерах, таким образом, не нужно писать никакого дополнительного кода вообще.

В вашем контроллере вы можете проверить Ajax

if($this->params['requested']){
  $this->layout('ajax');
  return $data;
}else{
  $this->set('data',$data);
}
...