Исключение Laravel: оба параметра должны иметь одинаковое количество элементов - PullRequest
0 голосов
/ 23 октября 2019

Я новичок в laravel и создаю приложение, которому необходимо импортировать данные .CSV в базу данных, данные были успешно импортированы, однако я столкнулся с этой проблемой:

ErrorException array_combine(): Both parameters should have an equal number of elements

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Accounts;
class AccountController extends Controller
{
    public function show(){
        return view ('upload');
    }
    public function store(Request $request){


        $file = $request->file('upload-file');
        $csvData = file_get_contents($file);

        $rows = array_map("str_getcsv", explode("\n", $csvData));
    // dd($rows);
        $header = array_shift($rows);
//    dd($header);
        foreach ($rows as $row) {

            $row = array_combine($header, $row);
            if (count($header) != count($row)) {
                continue;
              }
            set_time_limit(0);
            Accounts::create([
                'AccountClass' => $row['Classe'],
                'AccountNumber' => $row['Compte'],
                'AccountDesc' => $row['Desc'],
                'active' => 1,
            ]);
        }

        return view ('home');

    }

}

Не могли бы вы указать мне правильное направление, спасибо заранее

1 Ответ

0 голосов
/ 23 октября 2019

Эта ошибка появляется при попытке объединить два массива с неравной длиной.

$arr1 = ["a", "s", "d"];
$arr2 = [1, 2, 3];

if(count($arr1) == count($arr2)){
    $result = array_combine($arr1, $arr2);
} else{
    echo "Error array combine";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...