2013-11-25 4 views
0

라우팅 Symfony2에서 구현 여러 매개 변수는 다음

http://localhost/person.php?name='Jack'&age=25&gender='male' 

방법 Symfony2 라우팅에 구현하는 일반 GET 요청 URL은?

acme_person_info: 
    pattern: /person/name/{name}/age/{age}/gender/{gender} 
    defaults: { _controller: AcmeUserBundle:Person:info } 

class PersonController extends Controller 
{ 
    public function infoAction($name, $age, $gender) 
    { 
      // do something here 
    } 

} 

답변

2

당신은 어쨌든 심포니 문서를 읽어야 여기에 테스트 후


내 솔루션입니다. http://symfony.com/doc/current/book/routing.html

// app/config/routing.yml 
person: 
    path:  /person/{name}-{age}-{gender} 
    defaults: { _controller: AcmeBlogBundle:Person:index } 

// src/Acme/BlogBundle/Controller/PersonController.php 
namespace Acme\BlogBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class PersonController extends Controller 
{ 
    public function indexAction($name, $age, $gender) 
    { 
     // do something 
    } 
} 
1

요청 개체의 쿼리 매개 변수에 액세스 할 수 있습니다.

는 GET/사람의 경우는 POST/사람을 위해 query 속성

$request->query 

액세스, 예를 들어

$request->query->get('query_parameter_name_here'); 

,

use Symfony\Component\HttpFoundation\Request; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class PersonController extends Controller 
{ 
    public function indexAction(Request $request) 
    { 
     // retrieve query parameter with $request 
     $person = $request->query->get('name'); 
     $age = $request->query->get('age'); 
    } 
} 

주, 당신은 request에 액세스 속성

$request->request