2013-04-23 22 views
8

Potrzebuję tylko jednego kontrolera, który powinien obsłużyć każdą prośbę, która przychodzi do mojej aplikacji 4 laravel. Problem polega na tym, że żadne z rozwiązań na stackoverflow lub w innym miejscu nie działa dla mnie.Zdobądź wszystkie trasy, Laravel 4

To co obecnie mam:

Route::any('(.*)', function(){ 
    return View::make('hello'); 
}); 

Teraz podczas przeglądania na stronie pojawia się za każdym razem o błędzie mówiąc:

Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException 

nadzieję, że ktoś może mi pomóc!

Odpowiedz

49

Wyrażenia regularne są ustawiane jako wymagania, a nie bezpośrednio na trasie.

Route::any('{all}', function($uri) 
{ 
    return View::make('hello'); 
})->where('all', '.*'); 
+0

Wow! Dziękuję bardzo! –

+0

Thx. Jak używać na przykład "TestController" tutaj zamiast bezpośredniego zwracania widoku? – Danzzz

+2

Taki sam układ, ale zamiast używać zamknięcia jako drugiego parametru, wykonaj polecenie 'Route :: any ('{all}', 'TestController @ method');' –

1
Route::group(array('prefix' => '/', 'before' => 'MAKEYOUROWNFILTER'), function() 
{ 

    // your routers after the/.... 
}); 

// aw filters.php

Route::filter('MAKEYOUROWNFILTER', function() 
{ 

    // do stuff or just 
    return View::make('hello'); 

}); 
0

Rozszerzenie na odpowiedź #Jason Lewisa przekierować do strony głównego:

Route::any('{all}', function($uri) 
{ 
    return Redirect::to('/'); 
})->where('all', '.*');