在运行时改变路线
Change route during runtime
目前,我们正在研究 HRIS(人力资源信息系统)。我们有不同的用户类型,例如 Admin、HR、Employee。但是用户类型不是静态的。我们希望为每种用户类型设置不同的路由。
例如
https://website/admin/{controller}/{id}
路线将取决于登录系统的用户。将读取其用户类型。
请问有没有办法为每个用户类型配置路由?
这与以下问题非常相似:MVC role-based routing
基本上你使用区域,结合路由约束。
我认为的解决方案是:
您创建了一个匹配模式的路由(URL 实际上):
https://website/admin/3
包含此用户的所有逻辑 - 可能是调用模型,请求相应的用户控制器,例如 superadmin,然后重定向到...
另一个URL匹配
https://website/admin/superadmin/3
现在有 controller = superadmin
和变量 id = 3
。并不是说路由应该不同 - 当 controller
是 id
(整数)或 string
时您可以实现逻辑以保持逻辑更加集中。
顺便提一下:
https://website/admin/3
应该没问题-您可以处理来自相应控制器的请求而无需重定向(参见 1. 点)
目前,我们正在研究 HRIS(人力资源信息系统)。我们有不同的用户类型,例如 Admin、HR、Employee。但是用户类型不是静态的。我们希望为每种用户类型设置不同的路由。
例如
https://website/admin/{controller}/{id}
路线将取决于登录系统的用户。将读取其用户类型。
请问有没有办法为每个用户类型配置路由?
这与以下问题非常相似:MVC role-based routing
基本上你使用区域,结合路由约束。
我认为的解决方案是:
您创建了一个匹配模式的路由(URL 实际上):
https://website/admin/3
包含此用户的所有逻辑 - 可能是调用模型,请求相应的用户控制器,例如 superadmin,然后重定向到...
另一个URL匹配
https://website/admin/superadmin/3
现在有
controller = superadmin
和变量id = 3
。并不是说路由应该不同 - 当controller
是id
(整数)或string
时您可以实现逻辑以保持逻辑更加集中。顺便提一下:
https://website/admin/3
应该没问题-您可以处理来自相应控制器的请求而无需重定向(参见 1. 点)