2015-03-03 75 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')