Skip to content

Commit 51600c7

Browse files
authoredJan 2, 2020
Merge pull request #90 from inertiajs/request-macro
Add inertia() request macro
2 parents b70a48c + ea1c523 commit 51600c7

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed
 

‎src/ServiceProvider.php

+9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Inertia;
44

5+
use Illuminate\Http\Request;
56
use Illuminate\Routing\Router;
67
use Illuminate\Contracts\Http\Kernel;
78
use Illuminate\Support\Facades\Blade;
@@ -12,6 +13,7 @@ class ServiceProvider extends BaseServiceProvider
1213
public function boot()
1314
{
1415
$this->registerBladeDirective();
16+
$this->registerRequestMacro();
1517
$this->registerRouterMacro();
1618
$this->registerMiddleware();
1719
}
@@ -23,6 +25,13 @@ protected function registerBladeDirective()
2325
});
2426
}
2527

28+
protected function registerRequestMacro()
29+
{
30+
Request::macro('inertia', function () {
31+
return boolval($this->header('X-Inertia'));
32+
});
33+
}
34+
2635
protected function registerRouterMacro()
2736
{
2837
Router::macro('inertia', function ($uri, $component, $props = []) {

‎tests/ServiceProviderTest.php

+12
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Inertia\Tests;
44

55
use Inertia\Middleware;
6+
use Illuminate\Http\Request;
67
use Illuminate\Support\Facades\App;
78
use Illuminate\Contracts\Http\Kernel;
89
use Illuminate\Support\Facades\Blade;
@@ -18,6 +19,17 @@ public function test_blade_directive_is_registered()
1819
$this->assertEquals('<div id="app" data-page="{{ json_encode($page) }}"></div>', $directives['inertia']());
1920
}
2021

22+
public function test_request_macro_is_registered()
23+
{
24+
$request = Request::create('/user/123', 'GET');
25+
26+
$this->assertFalse($request->inertia());
27+
28+
$request->headers->add(['X-Inertia' => 'true']);
29+
30+
$this->assertTrue($request->inertia());
31+
}
32+
2133
public function test_route_macro_is_registered()
2234
{
2335
$route = Route::inertia('/', 'User/Edit', ['user' => ['name' => 'Jonathan']]);

0 commit comments

Comments
 (0)
Please sign in to comment.