如何将我的功能连接到Symfony 4中的模板?

时间:2018-07-10 08:02:22

标签: php symfony twig

这是我的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));

这正确吗?

1 个答案:

答案 0 :(得分:1)

以下行应该有效,您可以执行{{json.something}}来检索树枝文件中的信息:

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

小修改:您不必将$results解析为json到树枝视图。 Twig可以自行读取$results,而无需将其解析为json。