簡體   English   中英

Symfony3:返回完整的JsonResponse循環

[英]Symfony3: Return a full JsonResponse loop

我剛剛創建了一個項目來嘗試Algolia搜索解決方案,並且效果很好,但是我無法返回JSON響應。

這是我的代碼

控制器:

/**
 * @Route("/api/search/user/{query}", name="search_query")
 */
public function searchAction($query)
{
    $entityManager = $this->getDoctrine()->getManagerForClass(User::class);

    $users = $this->indexManager->search($query, User::class, $entityManager);

    if($users) {
        $result = $this->renderView('xxx/search_user.html.twig', [
            'users' => $users
        ]);

        return new JsonResponse(['success' => true, 'users' => [$result]]);
    }

    return new JsonResponse(['success' => false, 'users' => []]);
}

HTML:

{{ users[0].username }}

這段代碼有效,但僅返回1個用戶而不是所有用戶,同上,如果我在twig文件中執行循環,它將呈現所有用戶,但效果不佳:

截圖

感謝您的幫助,對不起我的英語。

這是因為twig在響應后在服務器上創建了視圖。

我建議您直接在控制器內部直接創建users數組,並刪除渲染視圖的一部分。

例如 :

foreach($users as $user) {
$result[]['name'] = $user['name'];
}

然后使用$ result。

希望對您有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM