1

プロジェクトのビューがあります。ProjectController のメソッドshowProjects()でAjax 呼び出しを行うと、各アイテムのテンプレートの配列を含む json フィードを取得します。

実際、私はそれを試してみましたが、テンプレートではなくrequest オブジェクトを含む json フィードを取得しました。jsで処理したいので、アイテムごとに1つのテンプレートを表示したくありません。

#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 に答える