我是Symfony的新人!我使用symfony 3.当我输入搜索时,我有一个搜索输入我希望在twig文件中显示结果。我从ajax发送了正确的结果,我有一个问题,显示数据结果从ajax到twig文件,并在这里使用循环。 这是我的控制器
/**
* @Route("/ajax_search", name="ajax_search", options={"expose"=true})
*/
public function ajaxSearchAction( Request $request)
{
$string = $request->get('search_items');
$users = $this->getDoctrine()
->getRepository('AppBundle:Item')
->findEntitiesByString($string);
$encoders = array(new XmlEncoder(), new JsonEncoder());
$normalizers = array(new GetSetMethodNormalizer());
$serializer = new Serializer($normalizers, $encoders);
$jsonContent = $serializer->serialize($users, 'json');
$response = new Response($jsonContent);
return $response;
}
ajax:
$(document).ready(function () {
$("#search_items").keyup(function () {
var q = $("#search_items").val();
var url = '../ajax_search?search_items=' + q;
$.ajax({
url: url ,
type: 'POST',
dataType: 'json',
data: {q: q},
success: function(data){
var result = JSON.stringify(data);
$('.test').html(result); //return correct data
}
});
});
});
和我的树枝
<input type="text" name="search" placeholder="search" id="search_items"/>
<div class="test"></div>//i want to get data and use loop in here
答案 0 :(得分:0)
在渲染树枝模板的操作中,您需要传递要在模板中使用的代码,如下所示:
return $this->render(
'yourTemplate.html.twig',
array(
'yourKey' => callYourFunctionToGetTheData()
)
);
在Twig中,您可以像这样处理您的数据:
<div>{{ yourKey }}</div>
在Twig中是阵列,对象,只是&#34;正常&#34;值可能是整数,字符串等。
希望这对你有帮助!
查看twig文档以获取更多Twig Documentation
问候