2011-08-25 44 views
0

我正在使用Zend Framework開發一個小型營銷項目,該項目的後臺當前由兩個控制器組成:一個活動控制器和一個微型控制器。 用戶使用表單創建一個廣告系列,然後他必須創建一個鏈接到此廣告系列的第二個表單的小型站點,所以我需要在保存微型數據時獲取廣告系列和用戶標識。Zend在控制器之間傳遞變量

什麼是最佳實踐,爲什麼?我應該在會話對象中傳遞這些變量嗎?

/backoffice/minisite/create/:userid/:campaign/ 

編輯:或者我應該通過類似的路線傳遞這些變量用戶登錄並創建活動

回答

0

我很確定用戶需要有一個帳戶來做這些事情。如果是,那麼競選和迷你會以某種方式與他們聯繫在一起。我會從某種形式的數據庫中存儲和檢索這些東西。

如果您沒有經過身份驗證的用戶,並且您確實只需要將兩個變量傳遞給另一個操作,請使用url參數,但要注意用戶可能會混淆它們的事實,並且會發生許多意外的事情。在會話中存儲更難以用這種方式操縱。

因此,如果不涉及身份驗證並且該站點是公共的,請使用會話,否則不要使用但使用存儲。

+0

好點,使用路由似乎是一個很好的解決方案,但它會涉及一些額外的工作來檢查用戶正在做什麼,然後重定向它,如果他亂搞url參數,就像試圖編輯其他用戶的活動一樣... – DoesNotCompute

+0

i意味着路線和額外數據庫數據 – DoesNotCompute

0

時,我會使用路由選項,你建議認證。利用會議即將結束是非常困難的測試,調試,將來等

+0

那麼,使用路由選項就很容易/很難擴展。 – markus

+0

是的,我想一旦你真的瞭解它可能會一樣容易/困難。我一直在想,當你回來一年左右時,如果能夠很容易地看到正在傳遞的內容,因爲它可以在URL中查看,那麼它會更快地再次理解。 – ChrisA

+0

另外,如果您想讓用戶創建多個廣告系列,然後創建微型服務器,您會做什麼。或者在創建之前註銷並重新登錄。我認爲在廣告系列旁邊有一個鏈接轉到「minisite/create」動作會容易得多。 – ChrisA

1

假定用戶要登錄做到這一點擴展,你可以存儲你的Zend_Auth身份所需要的用戶信息

如果不是,您可以將數據存儲在與Zend_Session或使用路由重定向到的正常會話變量中。任何一個選項都是好的,所以您應該選擇最適合您和您的應用程序的選項。

1

對於兩個控制器之間的passinf信息,最好的方法是使用session來全局存儲值。 :-)