dynamic data

This commit is contained in:
armiejean 2025-05-12 19:40:37 +08:00
parent b881ff4774
commit 5064b6e6c6
4 changed files with 31 additions and 6 deletions

View File

@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserViewController extends Controller
{
//
}

View File

@ -5,7 +5,7 @@ namespace App\Providers;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\View;
use App\View\Composers\UserViewComposer;
class AppServiceProvider extends ServiceProvider class AppServiceProvider extends ServiceProvider
{ {
@ -23,9 +23,6 @@ class AppServiceProvider extends ServiceProvider
public function boot(): void public function boot(): void
{ {
// Share authenticated user with the 'layouts.app' view // Share authenticated user with the 'layouts.app' view
View::composer('layouts.app', function ($view) { View::composer('layouts.app', UserViewComposer::class);
$user = Auth::user();
$view->with('user', $user);
});
} }
} }

View File

@ -0,0 +1,18 @@
<?php
namespace App\View\Composers;
use Illuminate\View\View;
use Illuminate\Support\Facades\Session;
class UserViewComposer
{
public function compose(View $view)
{
// Retrieve the user data from the session, default to null if not set
$user = Session::get('user', null);
// Share the user data with the view
$view->with('user', $user);
}
}

View File

@ -230,7 +230,7 @@
<li class="nav-item dropdown"> <li class="nav-item dropdown">
<a class="nav-link dropdown-toggle d-flex align-items-center gap-2" href="#" <a class="nav-link dropdown-toggle d-flex align-items-center gap-2" href="#"
role="button" data-toggle="dropdown"> role="button" data-toggle="dropdown">
<span style="margin-right:5px">{{ $user['admin']['username'] ?? 'N/A' }}</span> <span style="margin-right:5px">{{ $user['admin']['username'] ?? 'Guest' }}</span>
<i class="fa-solid fa-user-circle" style="padding-right:5px"></i> <i class="fa-solid fa-user-circle" style="padding-right:5px"></i>
</a> </a>
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-sm"> <ul class="dropdown-menu dropdown-menu-end dropdown-menu-sm">