Silex: вернуть новый запрос на другой маршрут? - PullRequest
0 голосов
/ 22 марта 2012

Я пытаюсь создать веб-приложение, используя Silex.Для некоторых моих маршрутов я бы хотел, чтобы результатом был новый запрос к другому маршруту.

$app->get('/', function () use ($app) {
   //Do something
   //Request route /route2
});

$app->post('/route2', function () use ($app) {
   //Do something else
   return result
});

Мне кажется, что это должен быть довольно стандартный вариант использования, но я не могу найтилюбой простой способ сделать это.Я знаю о redirect, но я не просто хочу перенаправлять, так как я не хочу использовать новый набор параметров записи, созданный в первой функции.

Я довольно новичок в обоих Silex/ Symfony и HTTP, так что мне интересно, если я что-то упустил?

Изменить: Могу добавить, что я думал об изменении текущего объекта запроса и замене данных поста своими собственными параметрамиа затем выполните перенаправление, но в классе Request для этого нет поддержки.

1 Ответ

0 голосов
/ 14 июля 2013

Вы можете использовать Запрос переадресации , например, так:

$app->get('/', function () use ($app) {
//
$subRequest = Request::create('/route2', 'GET');
return $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST);
});

или вместо $subRequest создать свой объект Request.

...