2017-03-13 7 views
0

Mentorと呼ばれるエンティティーとAjaxのオートコンプリートがあります。lastNamefirstNameの両方がオートコンプリート可能です。 そして、コントローラの関数に2つのリターンを追加する必要があります。ここコントローラー内での1つのアクションでの複数のリクエストの基本的な条件 - symfony3

は私が1 returnのために行わ何であり、それは動作します(私はlast nameのためにそれをやった)

public function ajaxAutoCompleteMentorAction(Request $request) 
{ 
    $em = $this->getDoctrine()->getManager(); 

    $lastNames = $em->getRepository('AppBundle:Mentor')->getMentorLastAutocomplete($request->query->get('term')); 

    $formattedData = array(); 
    foreach ($lastNames as $lastName) { 
     $formattedData[] = array(
      'value' => $lastName['lastName'], 
     ); 
    } 
    return new JsonResponse($formattedData); 
} 

それから私はfirstNameフィールドのリターンを追加するためにこれを実行しようとしました。そのように

public function ajaxAutoCompleteMentorAction(Request $request) 
{ 
    $em = $this->getDoctrine()->getManager(); 

    $lastNames = $em->getRepository('AppBundle:Mentor')->getMentorLastAutocomplete($request->query->get('term')); 
    $firstNames = $em->getRepository('AppBundle:Mentor')->getMentorFirstAutocomplete($request->query->get('term')); 

    $formattedLast = array(); 
    foreach ($lastNames as $lastName) { 
     $formattedLast[] = array(
      'value' => $lastName['lastName'], 
     ); 
    } 
    return new JsonResponse($formattedLast); 

    $formattedFirst = array(); 
    foreach ($firstNames as $firstName) { 
     $formattedFirst[] = array(
      'value' => $firstName['firstName'], 
     ); 
    } 
    return new JsonResponse($formattedFirst); 
} 

しかし、私はそれを動作させることはできません。私はifをどこかに置くべきですか? はあなたが両方のリターンを削除し、のみ返すことができ、あなたの助け

+0

これはsymfonyでは関係ありません。この質問は 'PHP'とタグ付けされるべきです。基本的なPHP構文です:関数は1つの値しか返せません。あなたができることは '$ formattedLast'と' $ formattedFirst'をひとつの変数に組み合わせてこの組み合わせを返すことです。 –

+0

次に、2つの要素を持つ配列を戻し、あなたのajax jsコードで処理します。 – COil

+0

@OscarPerez、あなたの答えに感謝します。私はコーディングに新しいので、あなたのソリューションに興味があります。コントローラのアクションでこれら2つをどのように組み合わせることができますか?ありがとうございます –

答えて

1

をありがとう:

return new JsonResponse([$formattedFirst, $formattedLast]); 
+0

あなたの答えをありがとう、それは正常に動作します –

関連する問題