Php Laravel:控制器构造函数中的访问路由

Php Laravel:控制器构造函数中的访问路由,php,laravel,list,routes,Php,Laravel,List,Routes,在我的laravel应用程序中,我需要访问每个控制器的\uu构造()中的路由 如果我运行这段代码,那么它可以正常工作。但是,当我运行php artisan route:list时,它会在类Illumb\Routing\route中提供Illumb\Contracts\Container\BindingResolutionException:Unsolvable dependency Resolution[Parameter#0[$methods]]解析 如果我按如下所示更改代码并运行相同的命令,

在我的laravel应用程序中,我需要访问每个控制器的
\uu构造()
中的
路由

如果我运行这段代码,那么它可以正常工作。但是,当我运行
php artisan route:list
时,它会在类Illumb\Routing\route
中提供
Illumb\Contracts\Container\BindingResolutionException:Unsolvable dependency Resolution[Parameter#0[$methods]]解析

如果我按如下所示更改代码并运行相同的命令,则会显示路由列表

class SomeController extends Controller
{
    public function __construct()
    {
        parent::__construct();

        /**
         * Middleware(s)
         */
        $this->middleware('auth');

        /**
         * Extracting current controller & action from the namespace
         */
        // list($controller, $method) = @explode("@", $route->getActionName());

        /**
         * Assigning values to private variables
         */
        // $this->controller = preg_replace('/.*\\\/', '', $controller);
        // $this->action     = preg_replace('/.*\\\/', '', $method);
    }
}
我需要每个渲染上的控制器和操作名称来显示活动链接。

如何解决这个问题?

Hm我从来没有用过这个来注入,你可以用
$request->route()
来代替,它是用
(\lightlight\Http\request$request)
来注入的。你能解释一下这会产生什么结果吗?只是好奇,为什么你需要改变
$this->controller
$this->action
,我在每个控制器/操作中传递这些值,并使用它们使链接在管理员区域中处于活动状态。您可以使用路由器名称,例如
{{Route::currentRouteName()=='Route.name'?'active':'}
class SomeController extends Controller
{
    public function __construct()
    {
        parent::__construct();

        /**
         * Middleware(s)
         */
        $this->middleware('auth');

        /**
         * Extracting current controller & action from the namespace
         */
        // list($controller, $method) = @explode("@", $route->getActionName());

        /**
         * Assigning values to private variables
         */
        // $this->controller = preg_replace('/.*\\\/', '', $controller);
        // $this->action     = preg_replace('/.*\\\/', '', $method);
    }
}