CakePHP:视图和控制器的灵活重定向

CakePHP:视图和控制器的灵活重定向,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我有不同观点的观点。客户编辑视图可以从客户列表、客户搜索、订单内等调用。其中一些视图是简单视图,其他视图包含用于添加、编辑或删除数据的表单。用户在该表单上完成了他必须完成的操作后,应该将其重定向到调用表单或其他表单 使用$this->referer不起作用,因为某些导航必须如下所示: 列出订单->编辑订单->删除订单->列出订单 我可以为每个调用定义重定向,因此我尝试使用查询字符串并将?redirectTarget=添加到每个链接或重定向。为此,我制作了一个控制器函数 在AppControlle

我有不同观点的观点。客户编辑视图可以从客户列表、客户搜索、订单内等调用。其中一些视图是简单视图,其他视图包含用于添加、编辑或删除数据的表单。用户在该表单上完成了他必须完成的操作后,应该将其重定向到调用表单或其他表单

使用$this->referer不起作用,因为某些导航必须如下所示:

列出订单->编辑订单->删除订单->列出订单

我可以为每个调用定义重定向,因此我尝试使用查询字符串并将?redirectTarget=添加到每个链接或重定向。为此,我制作了一个控制器函数

在AppController.php中

public function getRedirectTarget() {
    if ($this->request->query('redirectTarget')) {
        return $this->request->query('redirectTarget');
    } else {
        return array(
            'controller' => 'pages',
            'action' => 'home'
        );
    }
}
这适用于窗体,因为我可以在控制器中使用getRedirectTarget,但我无法从视图中访问该函数以构建链接。至少我不应该这样做,在示例中,我必须从顶部将信息从订单列表传递到编辑视图,以构建链接并传递到表单操作的底层控制器

现在我脑子里有不同的想法,但没有一个我真的很开心。我不是舒尔该走哪条路

在CakePhp中有什么我还没有找到的吗? 使用$this->requestAction? 将所有内容更改为窗体和按钮,并在控制器中执行所有重定向? 有没有办法为每个视图创建一个变量? 在我看来,这似乎是一个comon要求,而且我对CakePHP还很陌生,所以我想征求您的意见。

使用应该是最好的方法

在视图中,可以有如下内容

$redirect = $this->requestAction('/mycontroller/requestAction');
$url = $this->Html->link('Continue', $redirect));

谢谢,这对我有用。由于这是一个非常小的应用程序,因此无法对性能进行任何说明。