Laravel使用基于用户进度的游戏控制器

问题描述:

在我目前的应用程序中,用户可以玩游戏。游戏由5个步骤组成。我使用模型UserProgress来记录用户的进度。根据当前的下一步,用户必须执行一些操作。Laravel使用基于用户进度的游戏控制器

目前我有一个控制器和一个功能,它执行所有步骤的编排,这是不好的。

但是我想在游戏的每一步都有一个功能,因为这更清晰。但是,每个步骤的URL都应该相同。

我不太确定做什么最佳做法是编排?应该在路由中完成还是应该在控制器中创建另一个处理编排的功能?

在此先感谢您的提示!

因为你没有提供任何你的代码,我只能给你一个基本的音乐会。

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

谢谢,这个提示让我在良好的方向! –