lundi 8 mai 2017

Pass parameter to Laravel Middleware

How can I passed a parameter in my middleware? I'm always getting this error enter image description here

Here are the structure of my middlware

<?php

namespace App\Http\Middleware;

use Closure;

class SubDomainAccess
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next, $subdomain)
    {
        dd($subdomain); // Just trying to output the result here
        return $next($request);
    }
}

And on the Kernel.php under the $routeMiddleware I added this

'subdomain.access' => \App\Http\Middleware\SubDomainAccess::class,

Now on my web.php route file I added this

Route::group(['domain' => '{subdomain}.' . config('site.domain')], function () {
        Route::get('/', ['as' => 'site.home', 'uses' => 'Site\Listing\ListingController@showListing'])->middleware('subdomain.access');
});

Also I tried this

Route::group(['domain' => '{subdomain}.' . config('site.domain')], function () {
    Route::group(['middleware' => 'subdomain.access'], function () {
        Route::get('/', ['as' => 'site.home', 'uses' => 'Site\Listing\ListingController@showListing']);
    });
});

I tried this but nothings working. The only thing I haven't tried is placing the middleware in my controller constructor. But I don't wan't it that way as I think this is messy and it's more elegant if its within the route file.

Hope you can help me on this. Thanks



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire