我们正在Laravel 5中开发一个应用程序,用户可以登录并根据分配给用户的许可证,在应用程序中提供多种“内容类型”。业务逻辑和表示逻辑根据所选内容类型而不同。用户可以选择要使用的内容类型,或者,如果只有一个许可证可用,则将被定向到该内容类型的主页。
现在我想弄清楚如何处理选定的内容类型。将它存储在会话中是不可能的,因为用户必须能够同时在一个浏览器会话中使用多种内容类型。
我想我需要从对所有相关路线进行分组开始,并在前面加上{contentType}。此外,添加一个中间件(名称类似于SelectContentTypeMiddleware)并让该中间件检查内容类型是否存在,以及是否允许登录用户访问它。
此外,每个下行路由(在{contentType}前缀路由组中)也必须处理路由参数$ contentType。
我试图弄清楚这是正确的方法。我正在查看此blogpost,其中介绍了设置应用区域设置的情况。使用app() - > setLocale($ locale)设置该请求的语言环境。我想知道我的案例的类似方法是否有意义,或者在每条路线中包含路由参数$ contentType更为可取。