Viac na
Laravel: Auth::user()->id sa pokúša získať vlastnosť neobjektu
Pri odosielaní formulára na pridanie používateľa dostávam nasledujúcu chybu "trying to get a property of a non-object", chyba je zrejme na prvom riadku: Auth::user()->id of the following:
$id = Auth::user()->id;
$currentuser = User::find($id);
$usergroup = $currentuser->user_group;
$group = Sentry::getGroupProvider()->findById($usergroup);
$generatedPassword = $this->_generatePassword(8,8);
$user = Sentry::register(array('email' => $input['email'], 'password' => $generatedPassword, 'user_group' => $usergroup));
$user->addGroup($group);
Nejaké nápady? Chvíľu som hľadal a všetko, čo som videl, hovorí, že by to malo fungovať dobre. Môj používateľ je prihlásený pomocou autentifikačného balíka Sentry 2.
68
3
Ak používate
Sentry
, skontrolujte prihláseného používateľa pomocouSentry::getUser()->id
. Chyba, ktorú dostanete, je, žeAuth::user()
vracia NULL a pokúša sa získať id z NULL, preto je chybapokus o získanie vlastnosti z neobjektu
.Predtým vykonajte Auth::check(), aby ste sa uistili, že ste dobre prihlásení:
id je
protected
, stačí pridať verejnú metódu do vášho/models/User.php
aby ste ju mohli zavolať
nezabudnite vždy otestovať, či je používateľ prihlásený...