首页 > 解决方案 > 如何将我的函数连接到 Symfony 4 中的模板?

问题描述

这是我的 dataTableController.php:

namespace App\Controller;

use DataTables\DataTablesInterface;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;

/**
 * @Route("/users", name="users_")
 */

class DataTableController extends Controller
{

  /**
  * @Route("", name="list")
  *
  * @param Request $request
  * @param DataTablesInterface $datatables
  * @return JsonResponse
  */

  const ID = 'users';

  public function usersAction(Request $request, DataTablesInterface $datatables): JsonResponse
  {
    try {
      // Tell the DataTables service to process the request,
      // specifying ID of the required handler.
      $results = $datatables->handle($request, 'users');

      return $this->json($results);

    }
    catch (HttpException $e) {
      // In fact the line below returns 400 HTTP status code.
      // The message contains the error description.
      return $this->json($e->getMessage(), $e->getStatusCode());
    }
  }

}

我想将输出连接到我的主页模板。

所以我改变了这条线..

return $this->json($results);

..到这一行:

return $this->render('homepage.html.twig', json($results));

这个对吗?

标签: phpsymfonytwig

解决方案


以下行应该可以工作,您可以通过执行以下操作来检索树枝文件中的信息{{json.something}}

return $this->render('homepage.html.twig', ['json' => json_encode($results)]);

小编辑:您不必将$resultsas json 解析为您的树枝视图。$resultsTwig 可以在不将其解析为 json的情况下读取它们自己。


推荐阅读