2015-04-18 28 views
6

Laravel 5 ile Rota parametrelerini ayarlayamıyorum.Laravel 5 yol parametreleri gönderilmiyor

Benim rota böyle kurgusunda:

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

Ve TestController şöyle görünür:

Ben bir parametre

/test?foo=bar 

sonuç ile bu rotaya göz

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

NULL.

Neyi yanlış yaptığımı kimse anlatabilir mi?

Girdi :: get ('foo') sözdizimi ya çalışmıyor (ve L5 belgelerinde belirtilmemiş).

Güncelleme: Ben web sunucusu olarak Apache kullanıyorum

.

Ben de

$request->get('foo') 

denenmiş ve aynı URL ile bu

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

gibi bir rota ve hala boş olsun.

Güncelleme 2:

L5 dokümantasyon böyle rotalar için örnekler verir:

/test/bar 

yerine bunun mümkün olduğunu L4 ise

/test?foo=bar 

ile yolları göz atmak için

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

veya sipariş biriyle

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

ve aynı güzergahı

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

değişen ve yapmanız gereken tek şey 'o gitmeyeceklerini

Input::get('user') 

ile Ama L5 olsun oldu

gibi rotalarda eğik çizgi kullanmak gerektiğinde parametrelerin sırasını değiştirmek mümkün olmayacaktır
Route::get('test/{id}/{user}/{foo}', '[email protected]'); 

Bu gerçekten L5'teki rotalar için büyük bir düşüş mü?

+0

nginx or apache? –

+0

@limonte apache – lightweight

+0

Neden sizin için işe yaramadığını bilmiyorum, ama burada '\ Illuminate \ Http \ Request': http://prntscr.com/6viqmv kullanarak' GET' params'larına erişebileceğiniz bir kanıt. Belki apache kurulumunda bir sorun var. –

cevap

1

Sorun, .htaccess dosyasıydı, parametrelerin gönderilmediği bir düzenlenmiş bir dosya kullandım.

Çerçeve ile birlikte gelen varsayılan .htaccess dosyası ile her şey çalışıyor!

+0

Bunun için lütfen .htaccess' dosyasındaki ekstreleri detaylandırın. Gelecek – morne

+0

için yararlı olabilir. Lütfen htaccess çözümü hakkında ayrıntılı bilgi verebilir misiniz? –

+0

".htaccess" çözümü hakkında ayrıntılı bilgi verir misiniz? – sulaiman

0

Bunu dener misiniz? laravel 5,

use Request; 

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

Denedim, sonuç hala boş. Sorumu güncelleyeceğim. – lightweight

+0

Ve rotayı Rota :: get ('test', 'TestController @ test') olarak değiştirin; GET isteği için rota parametresini kullanmanız gerekmez. –

+0

Bunu denedim, hala çalışmıyor. Burada çalışmayan bir labirent olduğundan emin olmak için makinenizde bir test yapmak mümkün mü? – lightweight

0

böyle kontrol yöntemi bir param konabilir:

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

rota ile - Rota :: ', ('Test/{ÖRNEK}' elde TestController @ sınama '); `

+0

Bu yalnızca/test/bar için çalışır, ancak/test için değil = foo = bar. Sorunun, bunun neden iyi bir çözüm olmadığını açıkladığım yeri güncelledim. – lightweight

+0

Değerlerinizi almak için '$ _GET' dizisini kullanmayı deneyin. – mcklayin

+0

Sadece bana girilen tam rotayı veriyor. Ve btw, laravelde $ _GET kullanmanıza gerek yok. – lightweight