Я использую 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);
}
Как проверить код из приведенного выше кода:
день рождения будет меньше текущей даты
номер телефона должен быть целым числом и 13 цифрами
по электронной почте быть строго по электронной почте
Как отобразить список полей с ошибками в нем не удается
Как отобразить импортированные файлы в случае успеха
Как удалить первую строку (заголовок)