¶Pendahuluan
Untuk mengirimkan data secara global atau data yang dapat dipanggil di semua halaman, inertia.js memiliki fitur yang bernama share data. Share data ini kita dapatkan ketika kita melakukan installasi laravel breeze, untuk menambahkan data yang dapat dipanggil secara global kita bisa menambahkan-nya didalam middleware inertia
.
¶Menambahkan Share Data Inertia
Silahkan teman - teman buka file yang bernama HandleInertiaRequest.php
yang terletak di folder app/Http/Middleware
, kemudian tambahkan kode berikut ini :
HandleInertiaRequest.php
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Inertia\Middleware;
class HandleInertiaRequests extends Middleware
{
/**
* The root template that is loaded on the first page visit.
*
* @var string
*/
protected $rootView = 'app';
/**
* Determine the current asset version.
*/
public function version(Request $request): string|null
{
return parent::version($request);
}
/**
* Define the props that are shared by default.
*
* @return array<string, mixed>
*/
public function share(Request $request): array
{
return [
...parent::share($request),
'auth' => [
'user' => $request->user(),
'permissions' => $request->user() ? $request->user()->getUserPermissions() : [],
'super' => $request->user() ? $request->user()->isSuperAdmin() : false,
],
];
}
}
Pada kode diatas pada method share
kita menambahkan beberapa key didalam array auth
, yang pertama ada key permissions
.
HandleInertiaRequest.php
'permissions' => $request->user() ? $request->user()->getUserPermissions() : [],
Pada kode diatas, key permissions kita lakukan pengecekan apakah user sedang login ? jika true
maka kita tampilkan data permissions yang dimiliki oleh user menggunakan method getUserPermissions
yang telah kita buat sebelumnya di model users
, jika false
maka kita akan tampilkan empty array.
Selanjutnya kita juga menambahkan key super
, key super ini kita gunakan untuk melakukan pengecekan apakah user memiliki role super-admin.
HandleInertiaRequest.php
'super' => $request->user() ? $request->user()->isSuperAdmin() : false,
¶Penutup
Pada artikel kali ini kita telah berhasil membuat share data yang bersifat global di inertia, berikutnya kita akan lanjutkan untuk membuat beberapa components yang nantinya akan kita gunakan pada project kita.