2012-03-12 52 views
0

好吧,這有點複雜,但我會盡可能簡單地解釋它。在MVC框架中傳遞數組

我有一個Model類,它完成所有的活動並將數據存儲在數組中。

我有一個Controller類,它創建一個新的Model類並從Model類調用需要的動作來執行活動。

但是,所有必須從一個視圖文件發生。所以我從View文件提交一個表單,刷新頁面,刷新後,我的Controller類檢查表單是否已經提交,如果爲true,那麼它開始從我的Model類創建一個對象。

現在,這是我有問題的部分。我再次需要重定向Controller類中的頁面,基本上它在刷新時正在做什麼,它實際上是根據Model類發送的數據在Controller類本身內調用動作。例如

在我的Controller類中有一個構造函數,它創建一個新的Model對象調用Model動作,並具有if和else語句來檢查Model類發送的數據。

現在,根據它調用/重定向到Controller類中的其他兩個操作的值。但是,當我重定向使用

header("model/controller/"); 

我的數組丟失,我沒法將我的數組從控制器傳遞給視圖。

我已經試過

header("model/controller/".$array); 

並使其通過網址。但我寧願不通過網址傳遞。

那麼,甚至有可能實現我想要完成的目標?

此外,對不起,如果這可能是一個天真的問題或一個非常糟糕的編程習慣,我只是在學習。批評非常受歡迎。

回答

1

你問的是如何在兩個HTTP請求之間持續數據,答案通常是使用sessions。它與MVC無關。

+0

我說因爲模型,視圖和控制器的行爲方式。如果不是爲了分離文件,我首先不會有這個問題。但是,是的,我也考慮過會議,這也是我試圖避免的原因,因爲我們以特定方式處理會話的簡化框架。 – shriek 2012-03-12 09:01:37

0

我認爲只有這樣,才能將它傳遞這樣是接收他們時,在模型中使用此代碼使用

$data = implode('/',$array); 
header("model/controller/".$data); 

和:

$data = explode('/',fun_get_args()); 
// OR 
$data = explode('/',$requestURL); 
// $requestURL to be replaced with a function depending on your MVC 

希望這可以幫助你

+0

這是一個有趣的方法。我會繼續測試代碼並讓你知道它是如何發生的。 – shriek 2012-03-12 16:03:57

+0

我已經得到它的工作:)雖然在一個不同的方法,但這個想法基本上是一樣的。而不是'/'我用';'因爲/在我們的MVC中專門處理。 感謝您的提示。^_^ – shriek 2012-03-12 23:22:16

+0

幸運的是它爲你工作..祝你好運 – 2012-03-13 08:17:29