簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM