Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查请求中是否存在参数_Php_Symfony_Symfony Http Foundation - Fatal编程技术网

Php 检查请求中是否存在参数

Php 检查请求中是否存在参数,php,symfony,symfony-http-foundation,Php,Symfony,Symfony Http Foundation,我有这个功能: /** * @Secure(roles="IS_AUTHENTICATED_FULLY") * @Route("/chequearFabricanteDistribuidor", name="chequearFabricanteDistribuidor", condition="request.headers.get('X-Requested-With') == 'XMLHttpRequest'") * @Method("GET") */ public function

我有这个功能:

/**
 * @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'];
}

是这样吗?有更好的吗?

当Cerad发布在回复上时,您可以使用:

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

$request->query->has('distribuidor')对于那些在
$request->query->has(…)
返回
null
的人,请确保您没有执行POST请求。对于POST请求,请使用
$request->request->has(…)