想要将CSV文件上传到MySQL数据库,仅上传选定的列,否则当上传具有选择要上传的列或字段并仅上传选定的选项时,其他将为空白,我该怎么办任何人有任何解决方案
cathylia 回答:仅将csv上传到mysql选定的列-Laravel
您需要一些库才能将excel / csv文件导出/导入到数据库。
有很多解决方案。 您可以使用例如: https://docs.laravel-excel.com/3.1/imports/
您可以通过Composer安装此软件包。
用法:
namespace App\Imports;
use App\User;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;
class UsersImport implements ToModel
{
/**
* @param array $row
*
* @return User|null
*/
public function model(array $row)
{
return new User([
'name' => $row[0],'email' => $row[1],'password' => Hash::make($row[2]),]);
}
}
如何导入某些列? https://docs.laravel-excel.com/3.1/imports/collection.html
namespace App\Imports;
use App\User;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
class UsersImport implements ToCollection
{
public function collection(Collection $rows)
{
foreach ($rows as $row)
{
User::create([
'name' => $row[0],// Here select ROW - 0 is the first row from your CSV
]);
}
}
}
public function import()
{
Excel::import(new UsersImport,'users.xlsx');
}
祝你好运!