Изменить действие контроллера в промежуточном программном обеспечении (Laravel 5.3) - PullRequest
0 голосов
/ 26 октября 2019

Я нашел следующий код, показывающий, как изменить контроллер и метод контроллера в промежуточном программном обеспечении:

class ChangeControllerMiddleware {

    public function handle($request, Closure $next) {

        $route = $request->route();

        $routeAction = array_merge($route->getAction(), [
            'uses'       => '\App\Http\Controllers\Foo@bar',
            'controller' => '\App\Http\Controllers\Foo@bar',
        ]);

        $route->setAction($routeAction);
        $route->controller = false;

        return $next($request);
    }
}

source

Но этот метод не работаетв 5.3. (Я получаю эту ошибку: «Невозможно получить доступ к защищенному свойству Illuminate \ Routing \ Route :: $ controller».)

FYI: после $route->setAction($routeAction); мой отладчик показывает, что свойства маршрута «использует» и «контроллер» убеждаютне обновляется.

Любые идеи будут очень полезны!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...