Multiple parameters implements in Symfony2 routing
12,112
Solution 1
You should read the symfony doc anyway. see 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
}
}
Solution 2
You could access query parameter in Request object.
$request->query->get('query_parameter_name_here');
For example,
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');
}
}
Note that,
For GET /person, you access the query
attribute
$request->query
For POST /person, you access the request
attribute
$request->request
Author by
user2241859
Updated on June 04, 2022Comments
-
user2241859 almost 2 years
Here is normal
GET
request URLhttp://localhost/person.php?name='Jack'&age=25&gender='male'
How to implement it to Symfony2 routing?
After test here is my solution:
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 } }