загрузить CSV в MySQL только выбранные столбцы - laravel - PullRequest
0 голосов
/ 04 ноября 2019

Хотите выгрузить CSV-файл в базу данных MySQL, выгрузить только выбранные столбцы, другие будут пустыми, когда выгрузка будет иметь возможность выбрать столбец или поле, которое нужно выгрузить, и выгрузить только выбранный, как я могу сделать так, чтобы у кого-нибудь было какое-либо решение

1 Ответ

0 голосов
/ 04 ноября 2019

Вам нужна библиотека для экспорта / импорта файлов Excel / csv в базу данных.

Существует множество решений. Вы можете использовать, например: https://docs.laravel -excel.com / 3.1 / import /

Вы можете установить этот пакет с помощью 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 / import / 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');
}

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...