[streams-platform] - How to set middleware on controller from addon service provider?

lckamal - 4 months ago

I have setup a middleware and added it to module service provider like this:

protected $middleware = [
        \Skrollx\JobsModule\Http\Middleware\CheckPackage::class,
    ];

But this middleware applies to all controller in this module. How to set middleware to use on a single controller?

dominique - 4 months ago

Try setting it in your controllers construct function

public function __construct()
{
    $this->middleware(\Skrollx\JobsModule\Http\Middleware\CheckPackage::class);
}

lckamal - 4 months ago

It worked! thanks. can we add parameter like we do in laravel? eg.. middleware('role:editor')

ryanthompson - 4 months ago

@lckamal yes you can - you can also add middleware in the addon service providers / via routes by defining 'middleware' parameter:

https://github.com/anomalylabs/streams-platform/blob/master/src/Addon/AddonProvider.php#L332

https://github.com/anomalylabs/streams-platform/blob/master/src/Addon/AddonProvider.php#L553