Saya baru mengenali Laravel, Saya ingin memasukkan butiran pelajar dari fail xlsx ke dalam pangkalan data mysql. Saya menggunakan Laravel excel v3 untuk mengimport fail excel. Ia berfungsi dengan baik. Walau bagaimanapun, selain daripada memasukkan butiran pelajar dalam 1 jadual, rekod ID pelajar yang sama harus dibuat dalam semua jadual yang berkaitan.
Contoh--> Jika anda memasukkan 1 pelajar dalam jadual "student_details", anda mesti mencipta 1 rekod dalam jadual "oral" dan "endsem" dengan kunci asing "student_id".
Saya telah menjalankan aktiviti untuk merekodkannya dalam helaian lisan dan helaian akhir. Sekarang persoalannya ialah cara menggunakan acara dan cara mendapatkan ID pelajar selepas mencipta pelajar untuk mencetuskan acara. (ID Pelajar akan menjadi nilai auto_increment)
Import Pelajar -->
<?php namespace App\Imports; use App\Events\StudentCreated; use Illuminate\Support\Collection; use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Validators\Failure; use Maatwebsite\Excel\Concerns\Importable; use Maatwebsite\Excel\Concerns\SkipsOnFailure; use Maatwebsite\Excel\Concerns\WithValidation; use Maatwebsite\Excel\Concerns\SkipsFailures; use Maatwebsite\Excel\Concerns\WithHeadingRow; use App\Models\StudentDetails; class StudentsImport implements ToModel, SkipsOnFailure, WithValidation, WithHeadingRow { use Importable, SkipsFailures; /** * @param Collection $collection */ public function model(array $row) { return new StudentDetails([ 'roll_no' => $row['roll_no'], 'student_id' => $row['student_id'], 'div' => $row['div'], 'name' => $row['name'], 'gender' => $row['gender'], 'user_key' => session()->get('user_id'), 'group_key' => $group_key ]); } public function onFailure(Failure ...$failures) { // Handle the failures how you'd like. } public function rules(): array { return [ 'student_id' =>[ 'required', 'string', 'unique:student_details' ], 'roll_no' =>[ 'required', 'integer' ], 'name' => [ 'required', 'string', ] ]; } }
Matlamat utama saya adalah untuk memasukkan rekod pelajar ke dalam semua jadual berkaitan dengan kunci asing "id_pelajar" apabila pelajar dimasukkan ke dalam jadual "butiran_pelajar". Jika ada cara lain, tolong bantu.
Daripada menggunakan
MaatwebsiteExcelConcernsToModel
您可以使用MaatwebsiteExcelConcernsOnEachRow
. Anda mempunyai lebih kawalan ke atas perkara yang berlaku pada setiap baris.Adapun untuk mewujudkannya dalam urusan: