仅在成功编辑的情况下重定向到最后一页

时间:2013-10-17 16:34:20

标签: cakephp cakephp-2.3

由于整整一天我一直在尝试搜索最佳解决方案,以重定向到请求它的同一页面。意味着我有一个编辑操作页面。我可以从任何地方移动此页面,无论是详细信息,视图,最新,最近还是我可以移动到编辑操作的任何其他操作。我想要的是我想在重定向的位置再次移动到最后一个动作。谷歌搜索我得到解决方案

`$this->redirect($this->referer());` //or 
`$this->redirect(Controller::referer());` 

在控制器中使用移动到但是它会再次编辑页面,因为它仅从那里导航。

其他解决方案告诉我使用其值为

的隐藏变量
`echo $this->Form->input('Song.referer', array('type' => 'text', "value"=>$this->request->referer()));` 

像这样,在成功编辑时请求此变量即可。但是如果在控制器上进行验证的情况下它会失败,因为如果出现错误,同一页面会打开,所以我的引用者会改变。在这种情况下,最佳做法是什么。我应该保存会话以及每次调用主要的推荐人或其他可用的cakephp 2.3

2 个答案:

答案 0 :(得分:0)

我使用这种方法:

当我在动作中创建指向编辑页面的链接时,我添加了一个'referer'param

$this->Html->link('Add', array('action' => 'add', 'referer' => 'detail'));

在我的控制器中然后我读取了referer的值,并在保存数据后重定向到右页,即使在验证错误的情况下,referer的值仍保留在页面的url中

这不是一个很好的解决方案,因为它对于看到网址的用户来说并不透明,并且可以更改引用来更改网址本身。但它很有效,实现起来很简单

答案 1 :(得分:0)

将最后一个位置保存在隐藏字段中,例如

picu_var picu_obj_tab;
picu_var := picu_obj_tab(picu_obj('101','xyz','pro-ssr-qr','12:13'));

现在将保存功能上的可选条件设置为在页面上重定向。

$this->request->data["Business"]["referer"] = $this->referer();