2017-10-09 63 views
1

在我目前的應用程序中,用戶可以玩遊戲。遊戲由5個步驟組成。我使用模型UserProgress來記錄用戶的進度。根據當前的下一步,用戶必須執行一些操作。Laravel使用基於用戶進度的遊戲控制器

目前我有一個控制器和一個功能,它執行所有步驟的編排,這是不好的。

但是我想在遊戲的每一步都有一個功能,因爲這更清晰。但是,每個步驟的URL都應該相同。

我不太確定做什麼最佳做法是編排?應該在路由中完成還是應該在控制器中創建另一個處理編排的功能?

在此先感謝您的提示!

回答

0

因爲你沒有提供任何你的代碼,我只能給你一個基本的音樂會。

1)我假設你使用POST請求,如果用戶提交狀態/頁面。當然,獲取請求也是可能的,但是您將數據保存在數據庫中,因此我會使用POST請求。

2)因此,對每個請求添加一個參數指示的步驟中,這可能是一個額外的查詢字符串像從一個隱藏的輸入字段?step=<nr>或一個附加POST參數:
<input type="hidden" name="step" value="<nr>">

3)你的途徑將交出所有請求到您的公共控制器功能

public function nextStep(Request $request) 
{ 
    switch ($request->get('step')) 
    { 
     case 1: return $this->stepOne($request); 
     case 2: return $this->stepTwo($request); 
     case 3: return $this->stepThree($request); 
     case 4: return $this->stepFour($request); 
    } 
} 

protected function stepOne(Request $request) 
{ 
    // To Step One 
    return view(step_two); 
} 

protected function stepTwo(Request $request) 
{ 
    // To Step Two 
    return view(step_tree); 
} 

protected function stepThree(Request $request) 
{ 
    // To Step Three 
    return view(step_four); 
} 

protected function stepFour(Request $request) 
{ 
    // To Step Four 
    return view(step_final); 
} 
+0

謝謝,這個提示讓我在良好的方向! –