2015-12-29 22 views
6

Sto usando sessione laravel 5.2 e qui è il mio codice di controllo:laravel 5.2 - Call to metodo non definito Illuminate Support Facciate Request :: sessione()

if ($request->session()->has('username')) { 
     return view('dashboard'); 
} 

Ho bisogno di usare la sessione, e questo errore:

FatalErrorException in linea HomeController.php 21: Call to undefined metodo Illuminate \ Support \ Facciate \ Request :: sessione()

Come risolverlo?

+1

assicuratevi di aggiungere 'use Illuminate \ Http \ Request;' –

risposta

7

Non si sa da dove proviene il $request, ma più probabilmente si è iniettato il tipo sbagliato.

Se si desidera solo l'istanza $request si vorrebbe utilizzare Illuminate\Http\Request

Kinda sembra si stanno avendo la facciata iniettato invece.

Request (nel namespace radice) è la facciata che è aliasata.

Illuminate\Http\Request è la classe di richiesta effettiva di cui si desidera l'istanza.

+0

Bene è sul controller. Ho già definito utilizzare Illuminate \ Http \ Request in cima. Ma il metodo session() non funziona. –

+0

quell'errore significa che è stata iniettata la classe sbagliata.quindi, a meno che l'errore nel tuo post non sia risolto, non lo stai nemmeno facendo alla chiamata "ha". – lagbox

0

Hey Se si utilizza laravel 5.2, questo ha funzionato per me.

Inserisci i controller nel middleware "web". Mi piace,

Route::group(['middleware' => 'web'], function() { 
    //routes here 
}); 

e Assicurarsi che il file del kernel abbia le classi di middleware registrate.

/** 
* The application's route middleware groups. 
* 
* @var array 
*/ 
protected $middlewareGroups = [ 
    'web' => [ 
     \Perkweb\Http\Middleware\EncryptCookies::class, 
     \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
     \Illuminate\Session\Middleware\StartSession::class, 
     \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
     \Perkweb\Http\Middleware\VerifyCsrfToken::class, 
    ], 

    'api' => [ 
     'throttle:60,1', 
    ], 
]; 
+0

Ho fatto lo stesso. Ma penso di aver capito il problema. Il mio problema era, non potevo usare '$ request-> session-> has ('chiave')'. Il problema era che ho appena creato una sessione come 'session ('chiave')'. Ma se usassi '$ request-> session() -> put ('key', 'value');' allora potrebbe funzionare! –

+0

Qui vai .. hai trovato il tuo problema di problemi ...;) – Cowboy

+0

Giusto. Ma grazie comunque. :) –

0

Si può provare con la facciata Sessione del genere.

Sulla parte superiore ..

use Session; 

nel metodo di controllo ..

if (Session::has('username')) { 
    return view('dashboard'); 
} 
0

basta cambiare la variabile $ richiesta a un altro nome variabile. ad esempio $ requestApp.

Ecco il codice:

if ($requestApp->session()->has('username')) { 
    return view('dashboard'); 
} 

perché $ richiesta per default è appartengono a usare Illuminate \ Http \ Request;

0

Prova mettere questo al vostro file di iniziare:

use Illuminate\Http\Request; 

Ho avuto lo stesso problema e risolto in questo modo.