[英]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.