2016-10-12 2 views
0

Ich habe Dashboard-Controller in Laravel..once die Benutzeranmeldung ich bin die Benutzer-ID in Sitzung speichern .. jede Funktion muss ich auf die Sitzungsvariable userId.Ich möchte zugreifen um den Sitzungswert in meiner Konstruktorvariablen zu speichern.So verwenden Sie geschützte Variable in Konstruktor Sitzung in Laravel

protected $users; 

protected $session; 

protected $userId; 

public function __construct(Users $users,Session $session){ 
     $this->users  = $users; 
     $this->session = $session; 
     if($this->session->has('userId)){ 
     $this->userId = $this->session->get('userId); 
     } 
} 

public function login(){ 
    // After success saving userId in session and assing like as below 
    $this->userId = $response['id']; 
} 

public function dashboard(){ 
    echo $this->userId; // Is empty 
} 

Was ist die Lösung oder wie man das benutzt?

Antwort

0

Ich würde empfehlen, ein Verfahren das Hinzufügen dieses wie:

private function getUserId() { 
    return ($this->session->has('userId) ? $this->session->get('userId) : null; 
} 

Dann ist es nur anrufen mag: $this->getUserId() in dem Controller.

Alternativ können Sie diese zu Ihrem Konstrukt wie folgt hinzu:

$this->userId = ($this->session->has('userId) ? $this->session->get('userId) : null; und darauf zuzugreifen wie $this->userId mit Ihrer Klasse.

1

In Laravel 5.3 können Sie nicht auf die Sitzung oder den authentifizierten Benutzer im Konstruktor des Controllers zugreifen, da die Middleware noch nicht ausgeführt wurde

Verwandte Themen