【问题标题】:How to create Mysql table from array values in Laravel 5.4如何从 Laravel 5.4 中的数组值创建 Mysql 表
【发布时间】:2017-07-18 16:57:23
【问题描述】:

我想从 CSV 标头创建一个数据库表。 这是我的代码。

//give a path of file
$path =  $request->file->getRealPath();
//gives csv header and store in array
$store =  ((((Excel::load($path))->all())->first())->keys())->toArray(); 
return dd(array_values ($store));

输出:

array:2 [▼
    0 => "title"
    1 => "description"
]

我想用列名(标题、描述)创建一个表怎么办?

谢谢。

【问题讨论】:

  • 我想通了。以下代码将从 CSV 或 EXCEL 文件中获取标题,并从这些标题中创建 SQL 表。 $path = $request->file->getRealPath(); $data = Excel::load($path)->first()->keys()->toArray(); Schema::connection('mysql')->create('aas', function($table) use($data) { $table->increments('id'); for($i = 0; $i string($data[$i]); });返回 dd(array_values ($data));

标签: php mysql laravel


【解决方案1】:

听起来是个坏主意。但是如果你真的需要它,你可以这样做:

$data = Excel::load($path)->first()->keys()->toArray();

\Schema::connection('mysql')->create('newTable', function($table) use($data) {
    $table->increments('id');
    $table->string($data[0]);
    $table->string($data[1]);
});

【讨论】:

  • 谢谢阿列克谢。这很有用。但是,有没有办法在 laravel 中从 csv 或 excel 表头创建表格?
  • @sdsfdesf 上面的代码将使用上面示例中的标题和描述。如果这些是字面上是titledescription 的键,请显示dd(Excel::load($path)->first()->toArray()) 的结果
  • array:2 [▼ 0 => "title" 1 => "description" ] 我收到了这个回复。
  • 这个“标题和描述”只是一个例子。实际上,我有很多包含大约 50 列的 CSV 文件。因此,当我将此文件上传到服务器时,它应该同时从表头在数据库中创建 SQL 表。
【解决方案2】:

我想通了。以下代码将从 CSV 或 EXCEL 文件中获取标题并从这些标题中创建 SQL 表。

            $path =  $request->file->getRealPath();
            $data = Excel::load($path)->first()->keys()->toArray();

            Schema::connection('mysql')->create('aas', function($table) use($data) {
            $table->increments('id');
            for($i = 0; $i < sizeof($data); $i++)
            $table->string($data[$i]);

            });

            return dd(array_values ($data));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 2023-03-11
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多