Импортируйте файл CSV в контроллер Laravel и вставьте данные в две таблицы.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Импортируйте файл CSV в контроллер Laravel и вставьте данные в две таблицы.

Сообщение Anonymous »


Итак, я полный новичок в Laravel и пытаюсь кое-что попробовать. Я хочу импортировать файл CSV в две таблицы. У меня есть таблица под названием lists, которая получит имя списка и client_id.

Затем у меня есть таблица под названием «клиенты», которая получит имя, фамилию, контактный номер, а также client_id и list_id.

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

Я выполнил первую часть, и она правильно вставляется в таблицу списков. Как мне теперь создать массив из CSV, который находится в хранилище/документах, а затем вставить его в таблицу клиентов?

пространство имен App\Http\Controllers; использовать ввод; использовать БД; используйте Illuminate\Http\Request; используйте App\Http\Requests\ListsRequest; используйте Приложение\Списки; используйте Приложение\Клиенты; используйте приложение\Http\Requests; используйте App\Http\Controllers\Controller; класс ListsController расширяет контроллер { индекс публичной функции() { // $list_items = Списки::all(); $clients = Клиенты::all(); return view('lists.show', Compact('clients')); } общедоступное хранилище функций (Requests\ListsRequest $request) { $input = $request->input(); Списки::create($input); если (Вход::hasFile('имя')) { $file = Input::file('name'); $имя = время(). '-' . $file->getClientOriginalName(); $path = путь_хранилища('документы'); $file->move($path, $name); // Все работает до сих пор // Все, что мне сейчас нужно, это создать массив // из CSV и вставляем в базу данных клиентов } } } Я решил использовать ответ, который принял, но я также поигрался с другим ответом и заставил его работать следующим образом.
публичное хранилище функций (Requests\ListsRequest $request) { $input = $request->input(); $client_id = $request->input('client_id'); если (Вход::hasFile('имя')) { $file = Input::file('name'); $имя = время(). '-' . $file->getClientOriginalName(); $path = путь_хранилища('документы'); Lists::create(['client_id' => $client_id, 'name' => $name]); $reader = Reader::createFromPath($file->getRealPath()); // Создаём клиента из каждой строки CSV-файла $headers = массив(); foreach ($reader как $index => $row) { если ($индекс === 0) { $headers = $строка; } еще { $data = array_combine($headers, $row); Клиенты::create($data); } } $file->move($path, $name); вернуть представление('клиенты'); } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»