Get access of FK data in Inertia (VueJS)

Role.php
———
id, name, status, info

User.php
———
id, name, email, username, mobile, role_id

role() =>
return $this->belongsTo(Role::class, ‘role_id’, ‘id’);

AppServiceProvider.php:
————————–
boot() =>
JsonResource::withoutWrapping();

Make Resource for Both User and Role
——————————————
php artisan make:resource UserResource
php artisan make:resource RoleResource

RoleResource.php
———————-
public function toArray(Request $request): array
{
return [
‘id’ => $this->id,
‘name’ => $this->name,
‘status’ => $this->status,
‘info’ => $this->info,
];
}

UserResource.php
———————–
public function toArray(Request $request): array
{
return [
‘id’ => $this->id,
‘name’ => $this->id,
‘gender’ => $this->gender,
‘username’ => $this->username,

// ‘role_name’ => $this->role->name
‘role’ => new RoleResource(($this->whenLoaded(‘role’)))
];
}

UserController.php
———————–
public function index()
{
$roles = Role::orderBy(‘id’, ‘asc’)->get();
$batches = Batch::orderBy(‘id’, ‘desc’)->get();
$users = UserResource::collection(User::with(‘role’)->get());
return Inertia::render(‘User/UserList’, [‘roles’ => $roles, ‘batches’ => $batches, ‘users’ => $users]);
}

Leave a Reply

Your email address will not be published. Required fields are marked *