Импортировать Excel в базу данных в laravel? - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь импортировать файл Excel и сохранить информацию в таблицу базы данных. Сейчас я получаю сообщение об ошибке

Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD, PUT, PATCH, DELETE.

Все учебники, которые я видел, не получили эту ошибку, и я делаю это так же, я не знаю, чтовопрос есть. Я использую этот пакет "maatwebsite/excel": "~2.1.3".

Это мое Vue

<el-form :action="'impteachers/import'" method="post" enctype="multipart/form-data">
    <el-input type="file" name="file"/>
    <el-input type="submit" value="upload"/>
</el-form>

Это контроллер

public function import(Request $request)
{
    $request->validate([
        'file' => 'required|mimes:xls,xlsx'
    ]);

    $path = $request->file('file')->getRealPath();
    $data = Excel::load($path)->get();

    if ($data->count()) {
        foreach ($data as $key => $value){
            $arr[] = [
                'NOMBRE' => $value->name,
                'CEDULA' => $value->card,
                'CARNET' => $value->scard,
                'TIPO-USUARIO' => $value->user_type_id,
                'CORREO' => $value->email,
                'PASSWORD' => $value->password,
            ];
        }

        if (!empty($arr)) {
            User::insert($arr);
        }
    }
    return redirect('/imports');
}

Это маршруты в web.php

Route::resource('impteachers', 'ImportTeacherController');
Route::post('impteachers/import', 'ImportTeacherController@import');

Что я делаю не так?

1 Ответ

1 голос
/ 29 октября 2019

Попробуйте отправить на '/impteachers' только так

<el-form :action="'/impteachers'" method="post" enctype="multipart/form-data">
    <el-input type="file" name="file"/>
    <el-input type="submit" value="upload"/>
</el-form>

И установите свой маршрут на

Route::post('/impteachers', 'ImportTeacherController@import');
...