MIF_E31221225/app/Imports/SoalPilganImport.php

48 lines
1.2 KiB
PHP

<?php
namespace App\Imports;
use App\Models\SoalPilgan;
use Illuminate\Validation\Rule;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithValidation;
class SoalPilganImport implements ToModel, WithHeadingRow, WithValidation
{
use Importable;
protected $ujian_id;
public function __construct($ujian_id)
{
$this->ujian_id = $ujian_id;
}
public function model(array $row)
{
return new SoalPilgan([
'ujian_id' => $this->ujian_id,
'pertanyaan' => $row['pertanyaan'],
'opsi_a' => $row['opsi_a'],
'opsi_b' => $row['opsi_b'],
'opsi_c' => $row['opsi_c'],
'opsi_d' => $row['opsi_d'],
'jawaban_benar' => $row['jawaban_benar'],
]);
}
public function rules(): array
{
return [
'*.pertanyaan' => 'required|string',
'*.opsi_a' => 'required|string',
'*.opsi_b' => 'required|string',
'*.opsi_c' => 'required|string',
'*.opsi_d' => 'required|string',
'*.jawaban_benar' => ['required', Rule::in(['a', 'b', 'c', 'd'])],
];
}
}