2015-04-18 20 views
6

Con Laravel 5 Non riesco a impostare i parametri del percorso.Parametri del percorso di Laravel 5 non inviati

Il mio percorso è configurato in questo modo:

Route::get('test', '[email protected]'); 

E il mio TestController assomiglia a questo:

public function test(Request $request) 
{ 
    var_dump($request->input('foo')); 
} 

Quando si naviga a quel percorso con un parametro

/test?foo=bar 

il risultato è zero.

Qualcuno può dirmi cosa sto facendo male?

La sintassi Input :: get ('foo') non funziona neanche (e non è nemmeno menzionata nella documentazione di L5).

Aggiornamento:

sto usando Apache come webserver.

Ho anche provato

$request->get('foo') 

e un percorso come questo

Route::get('test/{foo?}', '[email protected]'); 

con lo stesso URL e ancora ottenere nulla.

Aggiornamento 2:

La documentazione di L5 fornisce esempi per le rotte in questo modo:

/test/bar 

invece di

/test?foo=bar 

In L4 è stato possibile passare alla percorsi con RICHIEDI come

/test?foo=bar&id=2&user=admin 

o cambiando l'ordine

/test?id=2&user=admin&foo=bar 

con uno e lo stesso percorso

Route::get('test', '[email protected]'); 

e tutto quello che doveva fare era ottenere con

Input::get('user') 

Ma con L5 è wouldn' È possibile modificare l'ordine dei parametri quando è necessario utilizzare barre nei percorsi come

Route::get('test/{id}/{user}/{foo}', '[email protected]'); 

Si tratta davvero di un grosso downgrade per le rotte in L5?

+0

nginx o apache? –

+0

@limonte apache – lightweight

+0

Non so perché non funzioni per voi, ma qui è una prova che è possibile accedere ai parametri 'GET' usando' \ Illuminate \ Http \ Request': http://prntscr.com/6viqmv. Forse qualcosa non va con la tua configurazione di apache. –

risposta

1

Il problema era il file .htaccess, ho utilizzato uno modificato in cui i parametri non sono stati inviati.

Con il file .htaccess predefinito fornito con il framework, tutto funziona!

+0

Potresti approfondire questo argomento con estratti dal tuo file '.htaccess'. Potrebbe renderlo utile per il futuro – morne

+0

Ho riscontrato lo stesso problema. Puoi per favore approfondire la soluzione htaccess? –

+0

Puoi per favore approfondire la soluzione '.htaccess'? – sulaiman

0

Vuoi provare questo?

use Request; 

public function test(Request $request) 
{ 
    var_dump($request->get('foo')); 
} 
+0

Provato, il risultato è ancora nullo. Aggiornerò la mia domanda – lightweight

+0

E cambia percorso in Route :: get ('test', 'TestController @ test'); Non è necessario utilizzare il parametro del percorso per GET Request. –

+0

Ho anche provato che, ancora non funziona. È possibile impostare un test sulla tua macchina per assicurarti che sia veramente laravel che non funziona qui? – lightweight

0

In laravel 5 si può mettere un param nel metodo di controllo in questo modo:

public function test(Request $request, $foo) { }

con percorso - Percorso :: get ('test/{foo}', 'TestController @ test '); `

+0

Che funziona solo per/test/bar ma non per/test? Foo = bar. Ho aggiornato la mia domanda dove spiego perché questa non è una buona soluzione. – lightweight

+0

prova ad usare l'array '$ _GET' per ottenere i tuoi valori. – mcklayin

+0

Questo mi dà solo il percorso completo che è stato inserito. E a proposito, non dovresti aver bisogno di usare $ _GET in laravel. – lightweight

Problemi correlati