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);
}
谢谢,这个提示让我在良好的方向! –