CakePHP动态元素

时间:2010-06-15 01:22:13

标签: cakephp element

我正在尝试在CakePHP应用程序中创建消息板类型元素。此元素将显示在使用特定布局的所有页面和视图上。我希望它显示模型中的所有消息,然后在单击链接时显示添加表单,然后在提交时返回更新的消息列表。所有这些都不会影响当前的视图/页面。

我设置了消息模型/控制器/索引,其中有一个请求索引操作的留言板元素。这很好用。但是我对如何返回到单击链接的原始页面/操作感到困惑。我不能使用$ this-> referer()因为它将链接回add()动作;我想要的是在此之前链接到页面/视图。

关于如何实现这样的事情的任何一般性指示?

1 个答案:

答案 0 :(得分:0)

我会使用Ajax来处理它,并使用ajax布局。

$this->layout('ajax')

然后你就可以设置一个完整的堆栈来处理它,并将各种参数作为参数传递给控制器​​动作。

通过使用Ajax,您无需担心传入referrer控制器/操作对。您还可以使用此处的返回来通过呼叫MessagesController来更新列表。额外的好处是你可以在实际控制器中切换布局,因此根本不需要编写任何额外的代码。

在您的控制器中,您可以检查Ajax

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