我对symfony很陌生。在其他语言,如java和其他我可以使用请求。getParameter('参数名')来获取值。
symfony2有类似的功能吗?
我见过一些例子,但没有一个对我有用。假设我有一个名称为用户名的表单字段。在action表单中,我尝试使用这样的东西:
$request = $this->getRequest();
$username= $request->request->get('username');
我也试过
$username = $request->getParameter('username');
and
$username=$request->request->getParameter('username');
但这些方法都不奏效。但是以下工作很好:
foreach($request->request->all() as $req){
print_r($req['username']);
}
我在哪里做错了使用getParameter()方法。任何帮助都将不胜感激。
你的选择:
简单:
请求- >请求- >获取美元(“参数”)($ _POST['参数'])或
请求- >查询- >获取美元(“参数”)($ _GET['参数'])
良好的Symfony表单具有所有验证、值转换和带有错误的表单呈现以及许多其他特性:
http://symfony.com/doc/current/book/forms.html
http://symfony.com/doc/current/cookbook/form/index.html
介于两者之间(参见下面的例子)
<?php
/**
* @Route("/customers", name="customers")
*
* @param Request $request
* @return Response
*/
public function index(Request $request)
{
$optionsResolver = new OptionsResolver();
$optionsResolver->setDefaults([
'email' => '',
'phone' => '',
]);
$filter = $optionsResolver->resolve($request->query->all());
/** @var CustomerRepository $customerRepository */
$customerRepository = $this->getDoctrine()->getRepository('AppBundle:Customer');
/** @var Customer[] $customers */
$customers = $customerRepository->findFilteredCustomers($filter);
return $this->render(':customers:index.html.twig', [
'customers' => $customers,
'filter' => $filter,
]);
}
更多关于OptionsResolver - http://symfony.com/doc/current/components/options_resolver.html