1

我有一个项目的看法。当我在我的 ProjectController 中对方法showProjects()进行 Ajax 调用时,我会得到一个 json 提要,其中包含每个项目的模板数组。

实际上,我尝试过,但我得到了一个包含请求对象的 json 提要,而不是模板。我不想为每个项目显示一个模板,因为我想在 js 中处理它们。

#ProjectController.php

public function showProjects() {
    $em = $this->getDoctrine()->getEntityManager();

    $projects = $em->getRepository('BtaskBoardBundle:Project')->findAll();
    if (!$projects) {
        throw new NotFoundHttpException();
    }

    $projects_template = array();
    foreach ($projects as $project) {
        $projects_template[] = $this->render('MyBundle::project.html.twig', array(
            'project' => $project,
            ));
    }

    return new Response(json_encode($projects_template), 200);
}

#project.html.twig

<a class="project" data-id="{{ project.id }}" href="#">{{ project.name }}</a>

怎么了?

提前致谢。

4

1 回答 1

1

你得到的响应对象应该有一个getContent()方法。查看文档Symfony\Component\HttpFoundation\Response中的类以获取更多信息。你应该可以这样做:

foreach ($projects as $project) {
    $projects_template[] = $this->render('MyBundle::project.html.twig', array(
        'project' => $project,
        ))->getContent();
}
于 2012-05-29T14:20:19.280 回答