有时,我们希望在不同的2个表中分隔用户和管理员.
我认为这是一个很好的做法.
所以我在寻找Laravel 5是否可行.
经过快速搜索,我发现很多人都有与我相同的问题.
我找到了一些答案,但我认为它们中的任何一个都不够好.
因此,我花了一些时间深入研究源代码,最后找到了实现这一目标的方法.
我需要在中间件中拥有当前找到的控制器和操作,以便我可以进行一些身份验证。但我发现这是不可能的,因为管道就像 Middleware1 -> Middleware2-> do the dispatching -> controller@action() -> Middleware2 -> Middleware1。
因此,在调度之前,我无法获取路线信息。在 $controller->action() 之后再做肯定是不对的。
我做了一些研究,发现了这一点。
$allRoutes = $this->app->getRoutes();
$method = \Request::getMethod();
$pathInfo = \Request::getPathInfo();
$currentRoute = $allRoutes[$method.$pathInfo]['action']['uses'];
Run Code Online (Sandbox Code Playgroud)
但这在访问 URI 时不起作用app/role/1,因为$allRoutes只有索引 ofapp/role/{id}而不是app/role/1。
有什么解决方法吗?