Παίρνω το ακόλουθο σφάλμα "προσπαθώντας να πάρω μια ιδιότητα ενός μη-αντικειμένου" όταν υποβάλλω μια φόρμα για να προσθέσω έναν χρήστη, το σφάλμα είναι προφανώς στην πρώτη γραμμή: 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);
Καμία ιδέα; Έχω ψάξει για λίγο και όλα όσα βλέπω λένε ότι αυτό θα πρέπει να δουλεύει μια χαρά. Ο χρήστης μου έχει συνδεθεί χρησιμοποιώντας το πακέτο ελέγχου ταυτότητας Sentry 2.
Εάν χρησιμοποιείτε το Sentry
ελέγξτε τον συνδεδεμένο χρήστη με το Sentry::getUser()->id
. Το σφάλμα που λαμβάνετε είναι ότι η Auth::user()
επιστρέφει NULL και προσπαθεί να πάρει το id από το NULL εξ ου και το σφάλμα προσπαθεί να πάρει μια ιδιότητα από ένα μη αντικείμενο
.
Κάντε ένα Auth::check() πριν για να βεβαιωθείτε ότι είστε καλά συνδεδεμένοι :
if (Auth::check())
{
// The user is logged in...
}
id είναι προστατευμένο
, απλά προσθέστε μια δημόσια μέθοδο στο αρχείο /models/User.php
.
public function getId()
{
return $this->id;
}
ώστε να μπορείτε να την καλέσετε
$id = Auth::user()->getId();
να θυμάστε πάντα να ελέγχετε αν ο χρήστης είναι συνδεδεμένος...
if (Auth::check())
{
$id = Auth::user()->getId();
}