PHP Silex - 服务控制器 - 传递参数

PHP Silex - Service Controller - passing a parameter

根据:

Silex - Service Controller Doc

我可以像这样定义一条路线(在一些额外的科西斯代码之后):

$app->get('/posts.json', "posts.controller:indexJsonAction");

但是...如何将用于 indexJsonAction 函数的 url 传递给 indexJsonAction 函数?

您应该将其直接映射到路线,例如:

$app->get('/posts.json/{param1}/{param2}, 'posts.controller:indexJsonAction');

这样,在您的控制器中,您可以期待这些参数:

public function indexJsonAction($param1, $param2) {
    //now you have access to these variables.
}

此外,silex 在后台使用 Symfony 的请求,因此您也可以将请求注入控制器并从请求中获取任何输入;

public function indexJsonAction(Request $request) {
    // use $request->get('param1'); etc
}