前提・実現したいこと
管理者(admin)でログインした際に、管理者用のナビゲーションメニュー(/views/livewire/admin-navigation-menu.blade.php)で管理者のユーザー情報を表示させるようにしたい。
発生している問題・エラーメッセージ
admin/loginから管理者アカウント(シーダーで作成)でログインすると、想定通りadmin/listに画面遷移するが、ログインユーザーの情報が取得できなくエラーが出てしまいます。
Trying to get property 'name' of non-object (View: /work/resources/views/livewire/admin-navigation-menu.blade.php) http://127.0.0.1:8000/admin/list
該当のソースコード
お手数ですが、該当コードが多い為Githubでご確認お願い致します。
Github
試したこと
下記の点を変更するとログイン後エラーが出なくなり、admin/listが正常に表示されるのですが、アカウント情報が取得できていなく、ログイン者情報が表示されていない状態です。
Auth::user()->name等でログイン者情報が取得できていない原因がわからない状況なので何処か怪しい点があればご指摘頂けると幸いです。
・web.phpにルーティング追加
use Laravel\Jetstream\Http\Controllers\Livewire\UserProfileController; Route::get('/admin/profile', [UserProfileController::class, 'show']) ->name('admin.profile.show');
・admin-navigation-menu.blade.phpを変更
route('profile.show') ↓変更 route('admin.profile.show') //ユーザー情報を取得している箇所を変更 Auth::user()->name ↓に変更 Auth::user() {{ Auth::user() }} //37行目 {{ Auth::user() }} //91行目 ここでドロップダウンに名前表示 <img class="h-10 w-10 rounded-full object-cover" src="{{ Auth::user() }}" alt="{{ Auth::user() }}" /> //159行目 <div class="font-medium text-base text-gray-800">{{ Auth::user() }}</div> //164行目 <div class="font-medium text-sm text-gray-500">{{ Auth::user() }}</div> //165行目
補足情報(FW/ツールのバージョンなど)
laravel8、livewire、docker
あなたの回答
tips
プレビュー