2017-11-22 3 views
0

Auf meinem Symfony Projekt habe ich diesen Controller:Symfony Umleitungs-URL mit Paginierung param

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 
    } 
} 

ich auch diese Strecken haben (php Art und Weise verwendet wird):

$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 Ich versuche, ist zu erreichen alle Anfragen umleiten, z. /list/1 in /list?page=1 aber wenn ich URL von der Route generieren muss die URL von einer Route zu generieren, muss ich die URL-Parameter nach ? Teil.

Wissen Sie, wie das geht?

Antwort

1

Sie können es so machen:

return $this->redirect($this->generateUrl('route_name', ['params'])); 

$this->redirect()RedirectResponse Instanz zurück, und $this->generateUrl() wird Zeichenfolge basierend auf Routing-Konfiguration.

Also in Ihrem Fall sollte diese Arbeit:

return $this->redirect($this->generateUrl('my_list_redirect', ['page' => 1]));