2015-03-03 126 views
4

有这样的功能:检查是否参数存在与否在请求

/** 
* @Secure(roles="IS_AUTHENTICATED_FULLY") 
* @Route("/chequearFabricanteDistribuidor", name="chequearFabricanteDistribuidor", condition="request.headers.get('X-Requested-With') == 'XMLHttpRequest'") 
* @Method("GET") 
*/ 

public function chequearFabricanteAction(Request $request) 
{ 
    $em  = $this->getDoctrine()->getManager(); 
    $entities = $em->getRepository('AppBundle:FabricanteDistribuidor')->findOneBy(
     array('nombre' => $request->query->get('fabricante')['nombre']) 
    ); 

    $response['valid'] = true; 

    if ($entities) { 
     $response['valid'] = false; 
    } 

    return new JsonResponse($response); 
} 

功能需要从两个不同的形式和不同的只有被称为是保存值的请求变种。在第一种形式是:$request->query->get('fabricante')['nombre']而在第二个是$request->query->get('distribuidor')['nombre']所以我要问,如果以正确的方式来处理,这可能是:

if (isset($request->query->get('fabricante'))) 
{ 
    $nombre = $request->query->get('fabricante')['nombre']; 
} 
else 
{ 
    $nombre = $request->query->get('distribuidor')['nombre']; 
} 

这是正确的?存在一个更好的?

+13

$请求 - >查询 - >有( 'distribuidor') – Cerad 2015-03-03 03:50:09

回答

4

由于CERAD贴在响应,您可以使用:

$request->query->has('distribuidor')