vendredi 25 octobre 2019

Modify Controller Action in Middleware (Laravel 5.3)

I found the following code showing how to modify the controller and the controller method in middleware:

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

But this method doesn't work in 5.3. (I get this error: "Cannot access protected property Illuminate\Routing\Route::$controller".)

FYI: after $route->setAction($routeAction); my debugger shows that the route's 'uses' and 'controller' properties haven't updated.

Any ideas would be very helpful!



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire