how to use slim redirect

dKab picture dKab · May 1, 2014 · Viewed 39.1k times · Source

I have a problem. I am using slim and I have route for my main page:

$app->get('/', function() use ($app) { ... 

In one of my controllers I want to redirect to the main page, so I write

$app->response->redirect('/', 303);

But instead of redirection to the '/' route I'm getting redirected to the root of my local server which is http://localhost/

What am I doing wrong? How should I use redirect method?

Answer

Adrian Wragg picture Adrian Wragg · May 13, 2014

Slim allows you to name routes, and then redirect back to them based upon this name, using urlFor(). In your example, change your route to:

$app->get('/', function() use ($app) { ... })->name("root");

and then your redirection becomes:

$app->response->redirect($app->urlFor('root'), 303);

See Route Helpers in the Slim documentation for more information.