web-dev-qa-db-ja.com

リクエストにパラメータが存在するかどうかを確認してください

私はこの機能を持っています:

_/**
 * @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);
}
_

関数は2つの異なる形式から呼び出す必要があり、唯一の違いは値を保持するリクエスト変数です。最初の形式は$request->query->get('fabricante')['nombre']で、2番目の形式は$request->query->get('distribuidor')['nombre']なので、これを処理する正しい方法は次のようになりますか?

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

これは正解?より良いものが存在しますか?

9
ReynierPM

Ceradが回答に投稿したように、次を使用できます。

$request->query->has('distribuidor')
18
Alex Mantaut