Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel - Using (:any?) wildcard for ALL routes?

I am having a bit of trouble with the routing.

I'm working on a CMS, and I need two primary routes. /admin and /(:any). The admin controller is used for the route /admin, and the view controller should be used for anything else than /admin. From the view controller, I will then parse the url and show the correct content.

This is what I have:

Route::get(array('admin', 'admin/dashboard'), array('as' => 'admin', 'uses' =>'admin.dashboard@index')); Route::any('(:any)', 'view@index'); 

The first route works, but the second one doesn't. I played around with it a little bit, and it seems if I use (:any) without the question mark, it only works if I put something after /. If i do put the question mark there, it doesn't work at all.

I want all of the following routes to go to view@index:

/ /something /something/something /something/something/something /something/something/something/something ...etc... 

Is this possible without hardcoding a bunch of (:any?)/(:any?)/(:any?)/(:any?) (which I don't even know works)?

What's the best way to go about this?

like image 213
qwerty Avatar asked Nov 08 '12 20:11

qwerty


1 Answers

Laravel 5

This solution works fine on Laravel 5:

Route::get('/admin', function () {    // url /admin  });  Route::get('/{any}', function ($any) {    // any other url, subfolders also  })->where('any', '.*'); 

Lumen 5

This is for Lumen instead:

$app->get('/admin', function () use ($app) {   // });  $app->get('/{any:.*}', function ($any) use ($app) {   // }); 
like image 62
Andrea Avatar answered Sep 22 '22 12:09

Andrea