2016-11-01 3 views
1

10 funktioniert Zuerst überprüfe ich, dass in anderen Controller (nicht im Ressourcen-Controller) meine Sitzung sehr gut funktioniert, aber wenn ich es in der Ressource-Controller meine getan habe Code für Get Session hat nicht funktioniert.

Hier ist meine Ressourcensteuerung

<?php 

namespace App\Http\Controllers\Admin; 

use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 

//tambahan 
use DB; 
use Session; 

//model 
use App\_admins; 
use App\Mahasiswas; 

class MahasiswaController extends Controller 
{ 
    protected $data; 
    protected $token; 

    public function __contruct(){ 
     $this->data = array(); 
     $this->middleware(function ($request, $next) { 
      $this->token = $request->session()->get('_admin_id'); 
      if (!$request->session()->has('_admin_id')) { 
       abort(404); 
      } 
      return $next($request); 
     }); 
    } 

    private function user($token){ 
     $this->data['query'] = _admins::find($token); 
    } 

    public function index(){ 
     echo $this->token; 
    } 

Es gibt mehr öffentliche Funktion ist, aber es ist immer noch leer, so bin ich es nicht hier zeigt Verwirrung zu vermeiden. Und hier ist mein Weg in web.php:

Route::group(['namespace' => 'Admin'],function(){ 

    Route::resource('/admin/mahasiswa','MahasiswaController'); 
    Route::resource('/admin/nilai','NilaiController'); 

}); 
+0

Alle Fehler produziert? Sie rufen '$ request' in Ihrem Konstruktor auf, aber ich sehe es nicht als Parameter? Versuchen Sie, Typhinten wie: '__construct (Request $ request)'. – camelCase

+0

@camelCase okay ich füge hinzu, aber es ist immer noch gleich, ich bekomme immer noch keine Daten aus meiner Sitzung, dieser Code funktioniert perfekt in anderen Controller (nicht Resource Controller) –

+0

Gibt es 'null' zurück wenn Sie' dd ($ request- > Sitzung) 'in Ihrem' Konstruktor'? – camelCase

Antwort

2

In 5.3 die Middleware ausgeführt wird noch nicht in den constructor, so dass Sie nicht in der Lage session Daten zu sammeln. Aber mit Ihrem Verschluss-basierten Ansatz sollten Sie in der Lage sein, darauf mit etwas wie diesem zuzugreifen: