Skip to content

Commit 55136dd

Browse files
committed
Support Auto Registration of Middleware on Laravel 5.4+
1 parent fecb9ec commit 55136dd

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

src/ServiceProvider.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,18 @@ protected function registerRouterMacro()
5353
protected function registerMiddleware()
5454
{
5555
$kernel = $this->app[Kernel::class];
56+
$group = Config::get('inertia.middleware_group', 'web');
5657

58+
// Laravel >= 6.9.0
5759
if (method_exists($kernel, 'appendMiddlewareToGroup')) {
58-
$kernel->appendMiddlewareToGroup(
59-
Config::get('inertia.middleware_group', 'web'),
60-
Middleware::class
61-
);
60+
$kernel->appendMiddlewareToGroup($group, Middleware::class);
61+
62+
return;
63+
}
64+
65+
// Laravel >= 5.4.4 && < 6.9.0
66+
if ($this->app[Router::class]->hasMiddlewareGroup($group)) {
67+
$this->app[Router::class]->pushMiddlewareToGroup($group, Middleware::class);
6268
}
6369
}
6470

tests/ServiceProviderTest.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Inertia\Inertia;
77
use Inertia\Middleware;
88
use Illuminate\Http\Request;
9+
use Illuminate\Routing\Router;
910
use Illuminate\Support\MessageBag;
1011
use Illuminate\Support\Facades\App;
1112
use Illuminate\Support\ViewErrorBag;
@@ -48,11 +49,12 @@ public function test_route_macro_is_registered()
4849
$this->assertEquals(['component' => 'User/Edit', 'props' => ['user' => ['name' => 'Jonathan']]], $route->defaults);
4950
}
5051

51-
public function test_middleware_is_registered()
52+
public function test_middleware_is_registered_to_the_web_group()
5253
{
53-
$middleware = App::make(Kernel::class)->getMiddlewareGroups();
54+
$route = Route::middleware('web')->get('/');
55+
$middleware = App::make(Router::class)->gatherRouteMiddleware($route);
5456

55-
$this->assertContains(Middleware::class, $middleware['web']);
57+
$this->assertContains(Middleware::class, $middleware);
5658
}
5759

5860
public function test_validation_errors_are_registered()

0 commit comments

Comments
 (0)