这是正常的GET
请求URL
http://localhost/person.php?name='Jack'&age=25&gender='male'
如何将其实现为Symfony2路由?
测试后,这里是我的解决方案:
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
}
}
无论如何都应该阅读symfony文档。看见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
}
}
您可以访问Request对象中的查询参数。
$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');
}
}
注意,
对于GET/person,您可以访问query
属性
$request->query
对于POST/person,您可以访问request
属性
$request->request