Я использую Slim framework в первый раз, и до сих пор все происходит. Но есть одна вещь, о которой я не могу сказать. После публикации формы я хотел бы перенаправить обратно на ту же страницу, но она использует параметр в URL-адресе, и я не могу вернуться к нему. Это то, что у меня есть до сих пор:
$app->post('/markets-:game', $authenticated(), function($game) use ($app) { $request = $app->request(); $id = $request->post('game3'); $app->flash('global', 'game added'); $app->response->redirect($app->urlFor('games.markets', {"game:$id"})); })->name('games.markets.post');
Любая помощь приветствуется. благодаря
Метод urlFor принимает два параметра:
Попробуй это:
$app->response->redirect($app->urlFor('games.markets', array('game' => $id)));
Для тех, кто приземляется здесь в поисках решения Slim 3, информация задокументирована в руководстве по обновлению.
Для перенаправления на маршрут с параметрами теперь выглядит следующим образом:
$url = $this->router->pathFor('games.markets', ['game' => $id]); return $response->withStatus(302)->withHeader('Location', $url);
С другой стороны, когда вы именовали маршруты, вы должны теперь использовать
$app->get('/', function (Request $request, Response $response) {...})->setName('route.name');
Вместо старого ->name
Любую информацию о различиях от slim 2 до slim 3 можно найти в Slim Upgrade Guide