Вставка данных с помощью Excel - laravel 5.6 - PullRequest
0 голосов
/ 06 июля 2018

Ниже показано, как вставить мои данные в таблицу моих учеников с помощью Excel. Когда я вставляю свои данные, используя Excel, это успешно, но, к сожалению, некоторые столбцы выглядят пустыми, как regiNo, firstName and lastName.

Я проверил имена столбцов базы данных, и они совпадают. Имена заголовков листов Excel также совпадают.

Как это могло произойти, пожалуйста?

Контроллер

 public function stdExcel(Request $request)
    {
        if($request->file('imported-file'))
        {
                  $path = $request->file('imported-file')->getRealPath();



            if(($request->file('imported-file')->getClientOriginalExtension()) != 'xlsx')
            {
                return redirect('/student/upload')->with('error','File Format may not be supported');

            }


            else {

                $data = Excel::load($path, function($reader)
                {})->get();

                   if(!($request->file('imported-file')->isValid()))
                    {
                        return redirect('/student/upload')->with('error','File upload failed');

                    }
                else {

                if(!empty($data) && $data->count())
                {
                  foreach ($data->toArray() as $row)
                  {
                    if(!empty($row))
                    {
                      $dataArray[] =
                      [
                        'regiNo' => array_get($row, 'regiNo'),
                        'session' => array_get($row, 'session'),
                        'class' => array_get($row, 'class'),
                        'shift' => array_get($row, 'shift'),
                        'firstName' => array_get($row, 'firstName'),
                        'middleName' => array_get($row, 'middleName'),
                        'lastName' => array_get($row, 'lastName'),
                        'gender' => array_get($row, 'gender'),
                        'nationality' => array_get($row, 'nationality'),
                        'dob' => array_get($row, 'dob'),
                        'photo' => array_get($row, 'photo'),
                        'fatherCellNo' => array_get($row, 'fatherCellNo'),


                      ];
                    }


                }
                if(!empty($dataArray))
                {
                   Student::insert($dataArray);

                   return redirect('student/list')->with('status','Students successfully added');

                 }



               }

            } 
        }    

     }

     else {
        return redirect('/student/upload')->with('error','No file was uploaded. Please upload a file');

     }
    }

Таблица

Schema::create('Student', function(Blueprint $table)
        {
            $table->increments('id');
            $table->string('regiNo',20);
            $table->string('session',15)->nullable();
            $table->string('class',100);
            $table->string('shift',15)->nullable();
            $table->string('firstName',60);
            $table->string('middleName',60)->nullable();
            $table->string('lastName',60);
            $table->string('gender',10)->nullable();
            $table->string('nationality',50)->nullable();
            $table->string('dob',12)->nullable();
            $table->string('photo',30)->nullable();
            $table->string('fatherCellNo',15)->nullable();
            $table->timestamps();
            $table->index('regiNo');
        });

1 Ответ

0 голосов
/ 06 июля 2018

Являются ли столбцы постоянно пустыми? Я имею в виду regiNo пусто для ВСЕХ записей?

Если это так, мы можем увидеть вашу миграцию, а также dd() из dataArray, например, shis:

if(!empty($row))
                {
                  $dataArray[] =
                  [
                    'regiNo' => array_get($row, 'regiNo'),
                    'session' => array_get($row, 'session'),
                    'class' => array_get($row, 'class'),
                    'shift' => array_get($row, 'shift'),
                    'firstName' => array_get($row, 'firstName'),
                    'middleName' => array_get($row, 'middleName'),
                    'lastName' => array_get($row, 'lastName'),
                    'gender' => array_get($row, 'gender'),
                    'nationality' => array_get($row, 'nationality'),
                    'dob' => array_get($row, 'dob'),
                    'photo' => array_get($row, 'photo'),
                    'fatherCellNo' => array_get($row, 'fatherCellNo'),


                  ];
                  dd($dataArray); // <<<<-------

}

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