如何让CakePHP重定向到不同的动作/控制器?

nic*_*ckf 5 php model-view-controller cakephp

我的情况:

向用户呈现表格或项目列表.在每个项目旁边,他们可以单击一个复选框来选择它,然后在底部是一个选择框,其中显示"使用所选项目...",以及诸如"删除","移动到项目","下载"等内容你知道这笔交易 - 批量操作.有些操作会立即执行,不需要自己的视图,但是其他操作需要一个中间视图(例如:"将这些操作移动到哪个项目?").

由于每个单独的操作都由不同的操作(可能是不同的控制器)处理,但是表单只能发布到一个地址,我需要一个操作来获取发布的数据并将其发送到适当的位置.

使用redirect()也不会起作用,因为这需要在不久的将来进行AJAX.

基本上我只想要一个动作,它将委托给不同的控制器/动作,就像原始请求一样:维护帖子数据,渲染视图等.

有任何想法吗?

nic*_*ckf 9

我能够使用Dispatcher搞清楚.

// for example, to reroute to users/delete

// this is in the controller which receives the request.
// this could even be in the AppController

$this->autoRender = false;
$d = new Dispatcher();
$d->dispatch(
    array("controller" => "users", "action" => "delete"),
    array("data" => $this->data)
);
Run Code Online (Sandbox Code Playgroud)