2015-09-12 52 views
0

我正在構建一個多步驟註冊表單。噹噹前步驟完全驗證時,我將只允許用戶前進到下一步。我還會將所有信息存儲在session中,當我擁有所有內容時,我會將其保存到數據庫中。多個步驟登記表單=>多個請求? (Laravel)

我的步驟涉及不同的領域,例如:具有地址的用戶詳細信息,業務詳細信息以及地址字段以及其他幾個字段。但是有些用戶需要填寫地址,而其他用戶則不需要。

  1. UserDetailsRequest(不包括地址)
  2. BusinessDetailsRequest(不包括地址)
  3. AddressRequest
  4. ExtraFieldsRequest

OR

  1. UserDetailsRequest(帶地址)
  2. BusinessDetailsRequest(帶地址)
  3. ExtraFieldsRequest

我可以根據用戶類型在我的控制器的要求,如果他們被要求提供的地址相結合?

一般來說,我是否需要創建儘可能多的請求,因爲我的項目上有表單?我是否可以創建一個「更大」的表單請求並在其中添加一些邏輯?

+0

當然可以,但這可能會導致維護此類代碼的開銷,因爲最佳做法表明保持方法的時間短於20行代碼。 – naneri

回答

0

開始提示:首先,如果地址與兩個獨立的實體有關,我不會分開所有的東西來創建第三個「地址」嚮導步驟。在用戶體驗方面,可能導致令人困惑。相反,我更喜歡你提出的第二個解決方案,即有三個步驟的解決方案。

現在,關於嚮導和存儲數據。當然,你可以用很多方式來做到這一點。很明顯,您可以使用會話,但如果您不知道未來應用程序的規模如何,您可能會遇到一些麻煩。我會做一些不同的事情。

像這樣:

  • 使用一些庫或框架(jQuery的,棱角分明,兩者你選擇),以使您的嚮導一個單頁的應用程序。它會更乾淨,如果你的用戶想要回去,編輯東西等等,更可用;
  • 創建一個JavaScript對象與您需要的所有數據,然後將其發送到控制器,在那裏它將被檢查,驗證,然後處理。顯然你將相應地創建類;

我不喜歡使用會話。如果我可以選擇不使用它們,我總是喜歡它的長期。