在我的Symfony项目中,我有这个控制器:
class MyListController extends Controller
{
public function myListRedirectAction($page)
{
//How I will set ? params
$url=$this->generateUrl('my_list');
$response=new RedirectResponse($url);
return $response;
}
public function myListAction()
{
$paginationIndex=$request->query->get('page');
//Get List
}
}
我也有这条路线(使用php方式):
$list=new Route('/list',array(
'_controller'=>'AppBundle:MyList:myList'
));
$collection->add('my_list',$list);
$listRedirect=new Route('/list/{page}',array(
'_controller'=>'AppBundle:MyList:myListRedirect'
),array(
'page'=>'\d+'
));
$collection->add('my_list_redirect',$list);
Whan我试图实现的是重定向所有请求,例如。 /list/1
进入/list?page=1
但是当我从路线生成网址需要从路线生成网址时,我需要在?
部分之后设置网址参数。
你知道怎么做吗?
答案 0 :(得分:1)
你可以这样做:
return $this->redirect($this->generateUrl('route_name', ['params']));
$this->redirect()
将返回RedirectResponse
个实例,$this->generateUrl()
将根据您的路由配置生成字符串。
所以在你的情况下这应该有效:
return $this->redirect($this->generateUrl('my_list_redirect', ['page' => 1]));