如何在Laravel 5.4中从数组值创建Mysql表

时间:2017-07-18 16:57:23

标签: php mysql laravel

我想从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"
]

我想用列名创建一个表(标题,描述)How?

感谢。

2 个答案:

答案 0 :(得分:0)

听起来不错。但如果你真的需要它,你可以这样做:

$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]);
});

答案 1 :(得分:-1)

我发现了。以下代码将从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));