php - 如何将我的函数连接到 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));
这个对吗?
解决方案
以下行应该可以工作,您可以通过执行以下操作来检索树枝文件中的信息{{json.something}}
:
return $this->render('homepage.html.twig', ['json' => json_encode($results)]);
小编辑:您不必将$results
as json 解析为您的树枝视图。$results
Twig 可以在不将其解析为 json的情况下读取它们自己。
推荐阅读
- docker - 1#1: pread() "/etc/nginx/conf.d/default.conf" 失败(38: 功能未实现)
- laravel - laravel 中 [App\comment] 的批量赋值
- excel - 将一行从一张纸复制到另一张纸的另一行
- laravel - Laravel 从选定的多行批量插入到另一个表
- php - 如何使用 laravel 从 MySql 中仅获取值作为数组
- google-cloud-platform - cloudbuild.yaml 文件中的 env 步骤参数未设置环境变量
- amazon-web-services - AWS Elastic Beanstalk Python 3.7 部署位置
- javascript - admin-ajax 返回 0 - 不向 db 提交表单数据
- json - 我正在尝试将相关表的数据放入 Django Rest Framework 中的列表序列化程序中
- azure-cosmosdb - 如何在数据资源管理器中查询嵌套数组?