Získat Auth User ID Laravel

0

Otázka

Udělal jsem Laravel Project A nainstalovat Vánek balíček pro multi ověřování A Vytvořit stráž zavolat admin za účelem kontroly uživatele posoudit, do panelu To funguje Tady je trasa

Route::get('/dashbord',[AdminController::class, 'Dashbord'])
    ->name('admin.dashbord')
    ->middleware('Admin');

Route::get('/profile/edit',[AdminProfileSettings::class, 'index'])
    ->name('admin.profile.settings')
    ->middleware('Admin');

Zde Je middleware

public function handle(Request $request, Closure $next)
{
    if(!Auth::guard('admin')->check()) {
        return redirect()->route('login_form')->with('error','please Login First');
    }
    return $next($request);
}

Tento kód funguje dobře, ale problém je, když jsem přihlaste se na palubní desku a pokusit se získat admin ID admin.profil.nastavení trasy je zvyklý dostat Id, Prošel jsem přihlášen admin id pomocí AdminProfileSettings řadič, jako je tento

public function index()
{
    $id=Auth::user()->id;
    $adminData = Admin::find($id);
    return view('admin.admin_profile_settings',compact('adminData'));
}

Ale když jsem se pokusí o přístup v admin.admin_profile_settings zobrazit ukaž mi tato chyba:

Se snaží získat vlastnost " id " non-objekt

Ale, pokud mohu použít $adminData = Admin::find(1); to Id bez problémů, ale když se snažím získat auth user id to mi ukáže chyba a pokud jsem přihlášen pomocí výchozí guard tato chyba nebude zobrazovat, ale to si id od uživatele tabulka

authentication breeze laravel
2021-11-23 18:30:07
1

Nejlepší odpověď

1

Nepoužíváte auth:admin middleware, takže Auth fasáda se chystá vytáhnout uživatele z výchozí stráž definované v config (což je web, pokud jste to změnil).

Bez použití auth:admin middleware, musíte zadat guard pro, které, jak získat uživatele.

$adminUser = Auth::guard('admin')->user();

Poznámka 1: pokud máte $request variabilní, můžete také vytáhnout uživatele z $request s $request->user()místo oslovení Auth fasády. Je to jen otázka preferencí. Na user() metoda také zabere stráž jako parametr, pokud je potřeba.

$adminUser = $request->user('admin');

Poznámka 2: user() metoda (Auth a žádost) vrací plně hydratované model. Není třeba, aby se id a znovu-načtení modelu.

2021-11-23 20:59:44

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................