0

0

Laravel AdminLTE 表格动态渲染数据库查询结果教程

聖光之護

聖光之護

发布时间:2026-01-09 17:09:43

|

514人浏览过

|

来源于php中文网

原创

Laravel AdminLTE 表格动态渲染数据库查询结果教程

本文详解如何在 laravel 中将数据库查询结果(eloquent 或 query builder 集合)动态渲染到 adminlte 的 datatables 表格中,避免硬编码静态数据,实现可维护、响应式的后台列表展示。

在使用 Laravel-AdminLTE 构建管理后台时,常需将数据库查询结果以表格形式展示。官方文档中 DataTables 组件示例使用的是静态数组(如 ['data' => [[1, 'John', '...'], ...]]),但实际开发中,我们更需要动态注入模型集合——尤其是当数据来自 DB::table() 或 Eloquent 查询时。

✅ 正确的控制器写法(推荐使用 compact())

首先优化控制器逻辑,避免冗余变量赋值,并确保传递的数据结构清晰:

// app/Http/Controllers/CategorieDocumentiController.php
public function index()
{
    $categoriePdf = DB::table('categorie_documenti')
        ->select('id', 'descrizione as name', 'per_veicolo') // 别名适配视图字段
        ->get();

    return view('elenca_categoria_pdf', compact('categoriePdf'));
}
⚠️ 注意:原问题中 descrizione 字段在视图里被误用为 name,因此建议在 SELECT 中显式使用 AS name 别名,或在 Blade 中统一用 $categoriePdfs->descrizione —— 本教程采用别名方式提升语义一致性。

✅ Blade 视图中构建 AdminLTE DataTables 表格

AdminLTE 的 DataTables 支持两种集成方式:

堆友
堆友

Alibaba Design打造的设计师全成长周期服务平台,旨在成为设计师的好朋友

下载
  • 服务端渲染(Server-side):适用于大数据量,需额外配置 AJAX 接口;
  • 客户端渲染(Client-side):适合中小规模数据(如几百条以内),直接传入 PHP 数组 → JSON → DataTables 初始化。

这里采用客户端渲染(更贴合原需求),无需修改 JS 配置,只需在 Blade 中生成

数据行,并启用 AdminLTE 自带的 DataTables 初始化脚本(默认已包含)。
{{-- resources/views/elenca_categoria_pdf.blade.php --}}
@extends('adminlte::page')

@section('title', 'Categorie Documenti')

@section('content_header')
    

Elenco Categorie PDF

@stop @section('content')
@foreach($categoriePdf as $item) @endforeach
ID {{ __('Nome Categoria') }} {{ __('Per Veicolo') }} {{ __('Azioni') }}
{{ $item->id }} {{ $item->name }} {{ $item->per_veicolo ? '✅ Sì' : '❌ No' }}
@csrf @method('DELETE')
@push('js') @endpush @stop

? 关键说明与最佳实践

  • 不要手动拼接 $config['data'] 数组:AdminLTE 的 DataTables 组件本质是前端插件,其 data 选项用于纯 JS 初始化;而更自然、更安全的方式是服务端输出 HTML 表格结构 + 客户端 JS 激活(如上所示),避免 PHP → JSON → JS 的多层转换和 XSS 风险。
  • 按钮操作建议使用标准
    :比拼接 HTML 字符串(如 ''.$btnEdit...)更易维护、支持 CSRF、兼容性更好。
  • 字段映射要准确:若数据库字段为 descrizione,视图中应使用 $item->descrizione;若希望统一叫 name,则在查询中用 AS name 显式重命名。
  • 启用响应式与国际化:通过 responsive: true 和 language.url 提升用户体验。

✅ 总结

你无需将 Laravel 集合“转成” $config['data'] 的二维数组来适配 AdminLTE —— 直接在 Blade 中遍历集合生成

行,并用 jQuery 激活 DataTables,才是简洁、健壮、符合 Laravel 哲学的做法。这种方式兼顾性能、可读性与扩展性,也是 Laravel-AdminLTE 官方 Wiki 中 Tool Components > DataTables 章节所隐含的推荐模式(HTML-based initialization)。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2308

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1521

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1414

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

951

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1413

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1233

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1445

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1304

2023.11.13

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

3

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.5万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号