Laravel - Как проверить поля в импорте maatwebsite excel - PullRequest
0 голосов
/ 27 января 2020

Я использую Laravel -5.8 и пакет Maatwebsite / excel-3.1 в Excel для импорта профиля пользователя в веб-приложении.

namespace App\Imports;

use App\User;
use App\StudentInfo;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Row;
use Maatwebsite\Excel\Concerns\OnEachRow;
use Maatwebsite\Excel\Concerns\WithHeadingRow;

class FirstStudentSheetImport implements OnEachRow, WithHeadingRow
{
  protected $class, $section;

  public function onRow(Row $row)
  {   
     $rowIndex = $row->getIndex();

     if($rowIndex >= 200)
        return; // Not more than 200 rows at a time

     $row = $row->toArray();

     $this->class = (string) $row[__('class')];
     $this->section = (string) $row[__('section')];

    $user = [
        'name'           => $row[__('name')],
        'email'          => $row[__('email')],
        'password'       => Hash::make($row[__('password')]),
        'active'         => 1,
        'code'           => auth()->user()->code,
        'address'        => $row[__('address')],
        'about'          => $row[__('about')],
        'pic_path'       => '',
         'birthday'             => $row[__('birthday')]?? date('Y-m-d'),
        'phone_number'   => $row[__('phone_number')],
        'verified'       => 1,
        'section_id'     => $this->getSectionId(),
        'blood_group'    => $row[__('blood_group')],
        'nationality'    => $row[__('nationality')],
        'gender'         => $row[__('gender')],
     ];

     $tb = create(User::class, $user);
}

Как проверить код из приведенного выше кода:

  1. день рождения будет меньше текущей даты

  2. номер телефона должен быть целым числом и 13 цифрами

  3. по электронной почте быть строго по электронной почте

  4. Как отобразить список полей с ошибками в нем не удается

  5. Как отобразить импортированные файлы в случае успеха

  6. Как удалить первую строку (заголовок)

...