MIF_E31221225/app/Imports/SiswaImport.php

41 lines
1.2 KiB
PHP

<?php
namespace App\Imports;
use App\Models\Siswa;
use App\Models\User;
use App\Models\Kelas;
use App\Models\TahunAjaran;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class SiswaImport implements ToModel, WithHeadingRow
{
public function model(array $row)
{
// Ambil tahun ajaran aktif
$tahunAktif = TahunAjaran::where('status', 'aktif')->first();
// Buat user untuk siswa
$user = User::create([
'name' => $row['nama'],
'email' => $row['email'],
'password' => Hash::make($row['password'] ?? 'defaultpassword'),
'role' => 'siswa',
'is_active' => 1,
]);
// Buat data siswa terkait user & tahun ajaran aktif
return new Siswa([
'user_id' => $user->id,
'nisn' => $row['nisn'],
'nama' => $row['nama'],
'alamat' => $row['alamat'],
'jenis_kelamin' => $row['jenis_kelamin'],
'kelas_id' => Kelas::where('nama_kelas', $row['kelas'])->value('id'),
'tahun_ajaran_id' => $tahunAktif->id ?? null,
]);
}
}