【问题标题】:Getting all tables inside a database using Laravel 4使用 Laravel 4 获取数据库中的所有表
【发布时间】:2013-10-27 00:28:03
【问题描述】:

我想达到什么目的?

获取数据库中的所有表名并使用@foreach @endforeach 回显它们。 我的数据库名称是 demoproject,里面有一些表,例如 users、list1、list2、list3,我需要回显所有表。

当使用 var dump 我得到 bool(true) 或当回显我得到 1 这个代码 DB::statement('show tables from demoproject');

我为什么要这样做?

我正在制作一个管理面板,我可以在其中编辑表格及其行。这就是为什么我需要使用@foreach 将它们链接到另一个页面。

我只需要知道如何回显该数据库中的所有表以继续此项目。

我正在使用 Laravel 4。

【问题讨论】:

  • 为什么不在你的应用程序中包含 PHPMyAdmin?
  • 因为我需要使用 php 加密一些值。而且我不希望所有管理员都编辑某些行。另外,我将添加有关如何编辑/插入值等的描述。
  • 你能不能不要再质疑我这样做的方法了?
  • 为什么不呢? cmets 用于澄清。如果您不想回答,那就不要回答。

标签: php mysql database pdo laravel-4


【解决方案1】:

我刚刚在 Laravel 5.2 中使用 Microsoft SQL 2012 完成了这项工作

$tables = DB::connection('<connection_name')
               ->table('INFORMATION_SCHEMA.TABLES')
               ->select('*')
               ->get();
dd($tables);

【讨论】:

    【解决方案2】:

    不过有点晚了,您可以运行$tables = DB::select('SHOW TABLES'); 来获取所有表格。

    【讨论】:

    • 我唯一的问题是,如果不知道我认为的数据库名称,您将无法遍历此列表。它是这样返回的: {"Tables_in_notes":"gdocs"},{"Tables_in_notes":"migrations"} 所以要得到一个列表,你必须知道这个项目叫做“notes”对吗?
    • @TommyNicholas,这不是项目名称,而是数据库名称,您通常可以通过env('DB_DATABASE')获得
    【解决方案3】:
    select * from information_schema.tables where table_schema='database_name'
    

    你也可以这样做来测试或诸如此类:

    $pdo = DB::connection()->getPdo();
    //run queries the normal pdo way
    

    【讨论】:

      猜你喜欢
      • 2014-10-10
      • 2014-01-26
      • 2015-10-31
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      • 2013-01-27
      相关资源
      最近更新 更多