Intereting Posts
Сортировка с модулем как установить переменные в файле include php? Запуск и остановка рабочих в gearman php Мне нужны необычные заказы mysql json_encode () ожидает, что параметр 2 длинный, строка задана WordPress – Как добавить привязку к ссылкам предыдущей / следующей страницы Как подключиться к двум таблицам в MYSQL с одинаковым идентификатором в нескольких строках Общая ссылка, которая откроет мое приложение или магазин приложений. Рамка для государственных машин PHP Как настроить SSL с помощью Laravel 5 за балансировщиком нагрузки (ssl_termination)? Отобразить пользовательский макет в автозаполнении в Yii WAMP и pcntl_fork Автоматическое определение текущего локального времени пользователя с помощью JavaScript или PHP Как вернуть как целочисленный параметр, так и шаблон рендеринга в качестве ответа в Symfony2 Можем ли мы перезагрузить один из пулов PHP-FPM, не беспокоя других

Переадресация Slim Framework с параметрами

Я использую 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 принимает два параметра:

  1. название маршрута;
  2. ассоциативный массив со всеми параметрами (необязательно).

Попробуй это:

 $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