Я пытаюсь загрузить файл Excel, используя https://www.youtube.com/watch?v=6P_nqOX38CE, но получаю эту ошибку ...
array_combine (): оба параметра должны иметь одинаковое количество элементов
Я не знаю, как это сделать, потому что я новичок в Laravel. Я также был бы признателен, если бы у кого-нибудь было лучшее предложение по созданию функции загрузки в Excel в моем проекте laravel.
Это мой контроллер:
public function parseImport(Request $request)
{
//get file
$upload = $request->file('csv_file');
$filePath = $upload->getRealPath();
//open and read
$file = fopen($filePath, 'r');
$header = fgetcsv($file);
// dd($header);
$escapedHeader=[];
//validate
foreach ($header as $key => $value) {
$lheader=strtolower($value);
$escapedItem=preg_replace('/[^a-z]/', '', $lheader);
array_push($escapedHeader, $escapedItem);
}
//looping through othe columns
while($columns=fgetcsv($file))
{
if($columns[0]=="")
{
continue;
}
//trim data
foreach ($columns as $key => &$value) {
$value=preg_replace("/[^A-Za-z0-9?! ]/","",$value);
}
$data = array_combine($escapedHeader, $columns);
// Table update
$stud = $data['student_id'];
$fname = $data['first_name'];
$midname = $data['middle_name'];
$surname = $data['surname'];
$gender = $data['gender'];
$class = $data['class'];
$stream = $data['stream'];
$budget->save();
}
}
}