Laravel Parameter In Every Url

I have read almost everything in web and documentation but i can't find solution for my Problem.

I have a variable stored in Session , then I want to put this variable in every url generated by route('some-route') .

In Session I have sub = "mysubid"

When I generate Route route('my-route') I want to pass this sub parameter in query string: http://domain.dom/my-route-parameter?sub=mysubid

Can you help me to solve This problem? Any helpful answer will be appreciated;



You can use the Default Values feature.

First create a new middleware php artisan make:middleware SetSubIdFromSession. Then do the following:


namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\URL;

class SetSubIdFromSession
    public function handle($request, Closure $next)
        URL::defaults(['sub' => \Session::get('sub')]);

        return $next($request);

At the end register your new middleware in app/Http/Kernel.php by adding it to $routeMiddleware.

protected $routeMiddleware = [
   // other Middlewares
   'sessionDefaultValue' => App\Http\Middleware\SetSubIdFromSession::class,

Add {sub} and the middleware to your route definition:

Route::get('/{sub}/path', function () {  

Since you want this on every web route you can also add the middleware to the web middleware group:

protected $middlewareGroups = [
    'web' => [
        // other Middlewares

    'api' => [