如何从数据库中获取所有表名并对其进行分页

Posted

技术标签:

【中文标题】如何从数据库中获取所有表名并对其进行分页【英文标题】:How to get all table names from db and paginate them 【发布时间】:2019-11-13 18:43:29 【问题描述】:

尝试对DB::select('SHOW TABLES')->paginate(1); 进行分页,但出现错误Call to a member function paginate() on array。如何获取所有表格并对其进行分页?

【问题讨论】:

把它变成一个集合然后分页 我是 laravel 新手,我知道的东西很少,但不知道如何混合使用 你能告诉我吗 查看官方文档以获取集合laravel.com/docs/5.8/collections 【参考方案1】:

由于您可以使用\DB:select 进行查询,因此它将响应数组而不是集合。因此,您无法从中进行分页。

这种情况可以使用LengthAwarePaginator,请看以下代码:

$sql .= 'SHOW TABLES LIMIT ' . $offset . ', ' . $limit; 

$result = \DB::select(\DB::raw($sql));
$myPaginator = new \Illuminate\Pagination\LengthAwarePaginator($result, $data['count'], $limit, $page, ['path' => action('MyController@index')]);
$data['result'] = $result;

【讨论】:

以上是关于如何从数据库中获取所有表名并对其进行分页的主要内容,如果未能解决你的问题,请参考以下文章

vb 如何获取EXCEL所有工作表名并显示在List1上

sql 从连接的查询中获取所有列,搜索列名并对其进行排序

如何在 Flask 中摄取实时数据并对其进行预测 [重复]

从 Oracle DB 中选择所有表名 [重复]

如何从 MySQL 将确切的行数加载到 jTable 并对剩余的行进行分页?

从四边形坐标获取边界框坐标(xywh)并对其进行归一化