[英]How to make CakePHP redirect to a different action/controller?
我的情況:
向用戶呈現表格或項目列表。 在每個項目旁邊,他們可以單擊一個復選框來選擇它,然后在底部是一個選擇框,其中顯示“使用所選項目......”,以及諸如“刪除”,“移動到項目”,“下載”等內容你知道這筆交易 - 批量操作。 有些操作會立即執行,不需要自己的視圖,但是其他操作需要一個中間視圖(例如:“將這些操作移動到哪個項目?”)。
由於每個單獨的操作都由不同的操作(可能是不同的控制器)處理,但是表單只能發布到一個地址,我需要一個操作來獲取發布的數據並將其發送到適當的位置。
使用redirect()
也不會起作用,因為這需要在不久的將來進行AJAX。
基本上我只想要一個動作,它將委托給不同的控制器/動作,就像原始請求一樣:維護帖子數據,渲染視圖等。
有任何想法嗎?
我能夠使用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)
);
如果您遵循MVC設計模式,那么您就沒有問題,因為業務邏輯應該在模型中,而不是在Controller操作中。
無論如何,你可以創建一個“批量”動作,它會調用所有其他人搜索一些可以使用的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.