我正在尝试在CakePHP应用程序中创建消息板类型元素。此元素将显示在使用特定布局的所有页面和视图上。我希望它显示模型中的所有消息,然后在单击链接时显示添加表单,然后在提交时返回更新的消息列表。所有这些都不会影响当前的视图/页面。
我设置了消息模型/控制器/索引,其中有一个请求索引操作的留言板元素。这很好用。但是我对如何返回到单击链接的原始页面/操作感到困惑。我不能使用$ this-> referer()因为它将链接回add()动作;我想要的是在此之前链接到页面/视图。
关于如何实现这样的事情的任何一般性指示?
答案 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);
}