将参数传递给控制器方法
Pass arguments to controller methods
我正在使用 silex,并且正在尝试将控制器用作服务。这个概念很好,但我不知道如何将参数传递给控制器方法。这就是我的意思
IndexController.php
class IndexController
{
public function pagesAction($page)
{
return $page;
}
}
//app.php
$app['index.controller'] = $app->share(function() use ($app) {
return new Controllers\IndexController();
});
$app->get('/pages/{num}', "index.controller:pagesAction");
当我访问 pages/3 时,我得到
Controller "SD\Controllers\IndexController::pagesAction()" requires that you provide a value for the "$page" argument (because there is no default value or because there is a non optional argument after this one).
我也试过了
$app->get('/pages/{num}', "index.controller:pagesAction:num");
有什么想法吗?
改变这个
class IndexController
{
public function pagesAction($page) //what is $page? Is not into route
{
return $page;
}
}
至
class IndexController
{
public function pagesAction($num)
{
return $page;
}
}
这是因为 silex(当然也是 Symfony2 逻辑)期望从路由到控制器的参数名称完全相同
或
您应该更改要为 $page
变量
参数化的路由
我正在使用 silex,并且正在尝试将控制器用作服务。这个概念很好,但我不知道如何将参数传递给控制器方法。这就是我的意思
IndexController.php
class IndexController
{
public function pagesAction($page)
{
return $page;
}
}
//app.php
$app['index.controller'] = $app->share(function() use ($app) {
return new Controllers\IndexController();
});
$app->get('/pages/{num}', "index.controller:pagesAction");
当我访问 pages/3 时,我得到
Controller "SD\Controllers\IndexController::pagesAction()" requires that you provide a value for the "$page" argument (because there is no default value or because there is a non optional argument after this one).
我也试过了
$app->get('/pages/{num}', "index.controller:pagesAction:num");
有什么想法吗?
改变这个
class IndexController
{
public function pagesAction($page) //what is $page? Is not into route
{
return $page;
}
}
至
class IndexController
{
public function pagesAction($num)
{
return $page;
}
}
这是因为 silex(当然也是 Symfony2 逻辑)期望从路由到控制器的参数名称完全相同
或
您应该更改要为 $page
变量