2013-06-01 10 views
12

Mam formularz wyszukiwania na pasku nawigacji w mojej aplikacji Laravel 4. Kiedy ktoś wpisze w wyszukiwarkę i prześle, chcę, aby zapytania były wykonywane tylko na podstawie sekcji witryny, w której się znajdują. Przykład, jeśli są na stronie bloga, chcę, aby zwracał tylko posty na blogu, a jeśli są na stronie użytkowników, chcę, aby wyświetlała tylko listę użytkowników.Laravel 4 - Pobierz aktualną nazwę trasy na ukrytym wejściu do wyszukiwania

Chyba że czegoś mi brakuje (na pewno jako nowość w Laravellu!) Mogę to zrobić za pomocą getCurrentRoute() -> getPath(). Ale muszę to zrobić z formularza, ponieważ kiedy próbuję to zrobić w kontrolerze, nie ma już starej trasy. Więc stworzyłem ukryte pole na mojej postaci tak:

{{ Form::hidden('route', '{{{Route::getCurrentRoute()->getPath()}}}') }}; 

Jednak „getCurrentRoute() -> getPath()” nigdy nie jest właściwie ocenione. Pole forma dosłownie drukuje go:

<input name="route" type="hidden" value="&lt;?php echo e(Route::getCurrentRoute()-&gt;getPath()); ?&gt;"> 

Czy ktoś zna sposób, aby uzyskać to do pracy, czy istnieje lepszy sposób to zrobić, że jestem całkowicie brakuje? Ponownie, nie mogę wstawić to na kontrolerze jak normalne, bo w tym momencie trasa została wysłana do

// Search 
Route::post('search', array('as' => 'search', 'uses' => '[email protected]'), function(){ 
}); 

w którym momencie to zawsze myśli nazwa trasa jest „szukaj”.

Odpowiedz

31

Spróbuj tego:

{{ Form::hidden('route', Route::getCurrentRoute()->getPath()) }} 

Ponieważ jest już wewnątrz bloku PHP ..

+0

TAK, że prawie wszystko działa idealnie. Dziękuję Ci! Wraca z/więc moja wartość to "/ blog", ale to jest w porządku, ponieważ mogę to sprawdzić za pomocą instrukcji if! Dzięki! – user2444007

Powiązane problemy