簡體   English   中英

如何將 Controller Foo 中的數據傳遞到 Controller 欄中的視圖?

[英]How do I pass data from Controller Foo to an View in Controller Bar?

在 zend 中,我有興趣將數據從一個 controller 傳遞到另一個 controller 中的視圖。

For example, I have a search controller whose purpose is to use the search model to query SOLR, and I want to have Index Controller call it from the view (via ajax or other means) and have Search controller return data to that view. 這可行嗎? 有沒有更好的方法呢?

提前致謝。

如果您想通過 AJAX 執行此操作,那么您只需要讓您的客戶端腳本(我猜是 javascript)向 url 發起與您希望執行的搜索相對應的請求。 您可能會將搜索控制器/操作配置為使用上下文切換,以便它以客戶端代碼可使用的格式(我猜是 json 或 xml)提供結果。

這種方法的缺點包括:發出兩個完整的請求,包括 HTTP 開銷,以獲取數據; 沒有 js 的客戶將一無所獲。

另一種方法是讓索引視圖腳本調用Action 視圖助手- 使用$this->action($action, $controller, $module, $params)調用 - 直接獲取數據。 同樣,您可能希望使用上下文切換或參數標志,這樣您就不會為完整的站點布局提供 HTML,而只是為搜索結果提供。

最后,您可以將該搜索功能下推到服務 class 中,以便索引 controller 和搜索 controller 都可以獨立使用它。 然后 controller 只是以正常方式將這些結果分配給視圖。

就個人而言,我傾向於 go 為服務方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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