Skip to content

Commit 6dceeac

Browse files
committed
Added and update seeders for the entire database
1 parent f9fdc21 commit 6dceeac

14 files changed

+346
-16
lines changed

composer.lock

+7-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

database/seeders/AdminSeeder.php

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
use Illuminate\Support\Facades\Hash;
8+
use Carbon\Carbon;
9+
10+
class AdminSeeder extends Seeder
11+
{
12+
public function run()
13+
{
14+
// Kiểm tra nếu tài khoản 'admin' đã tồn tại
15+
$existingAdmin = DB::table('tb_Admin')->where('taiKhoan', 'admin')->first();
16+
17+
if (!$existingAdmin) {
18+
DB::table('tb_Admin')->insert([
19+
'taiKhoan' => 'admin',
20+
'matKhau' => Hash::make('123456'), // Mã hóa mật khẩu
21+
'phanQuyen' => 1,
22+
'created_at' => Carbon::now(),
23+
'updated_at' => Carbon::now(),
24+
]);
25+
}
26+
}
27+
}

database/seeders/CaThiSeeder.php

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
use Faker\Factory as Faker;
8+
9+
class CaThiSeeder extends Seeder
10+
{
11+
public function run()
12+
{
13+
$faker = Faker::create('vi_VN');
14+
15+
foreach (range(1, 5) as $index) {
16+
DB::table('tb_CaThi')->insert([
17+
'tenCa' => 'Ca ' . $index,
18+
'thoiGianBatDau' => $faker->dateTimeBetween('now'),
19+
'thoiGianKetThuc' => $faker->dateTimeBetween('+1 weeks', '+2 weeks'),
20+
'kythi_id' => 1,
21+
'monhoc_id' => $faker->numberBetween(1, 3),
22+
'created_at' => now(),
23+
'updated_at' => now(),
24+
]);
25+
}
26+
}
27+
}
+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
use Faker\Factory as Faker;
8+
9+
class CauHoiDapAnSeeder extends Seeder
10+
{
11+
public function run()
12+
{
13+
$faker = Faker::create('vi_VN');
14+
15+
foreach (range(1, 20) as $index) {
16+
17+
$cauHoiId = DB::table('tb_CauHoi')->insertGetId([
18+
'noiDung' => $faker->sentence,
19+
'typeAudio' => null,
20+
'typeVideo' => null,
21+
'typeImage' => null,
22+
'doKho' => $faker->numberBetween(1, 5),
23+
'monhoc_id' => $faker->numberBetween(1, 3),
24+
'created_at' => now(),
25+
'updated_at' => now(),
26+
]);
27+
28+
$dapAnDungId = null;
29+
30+
foreach (range(1, 4) as $index) {
31+
$dapAnId = DB::table('tb_DapAn')->insertGetId([
32+
'typeText' => $faker->sentence,
33+
'typeAudio' => null,
34+
'typeImage' => null,
35+
'dapAnDung' => $index === 1, // Chỉ có một đáp án đúng, chọn đáp án đầu tiên là đúng
36+
'cauhoi_id' => $cauHoiId,
37+
'created_at' => now(),
38+
'updated_at' => now(),
39+
]);
40+
41+
if ($index === 1) {
42+
$dapAnDungId = $dapAnId;
43+
}
44+
}
45+
}
46+
}
47+
}

database/seeders/DatabaseSeeder.php

+18-9
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,31 @@
22

33
namespace Database\Seeders;
44

5-
use App\Models\User;
6-
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
75
use Illuminate\Database\Seeder;
86

97
class DatabaseSeeder extends Seeder
108
{
119
/**
1210
* Seed the application's database.
11+
*
12+
* @return void
1313
*/
14-
public function run(): void
14+
public function run()
1515
{
16-
// User::factory(10)->create();
17-
18-
User::factory()->create([
19-
'name' => 'Test User',
20-
'email' => 'test@example.com',
16+
// Gọi tất cả các seeder
17+
$this->call([
18+
AdminSeeder::class,
19+
KhoaSeeder::class,
20+
NganhSeeder::class,
21+
LopSeeder::class,
22+
SinhVienSeeder::class,
23+
MonHocSeeder::class,
24+
KyThiSeeder::class,
25+
CaThiSeeder::class,
26+
PhongThiSeeder::class,
27+
DeThiSeeder::class,
28+
CauHoiDapAnSeeder::class,
29+
KetQuaSeeder::class,
2130
]);
2231
}
23-
}
32+
}

database/seeders/DeThiSeeder.php

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
8+
class DeThiSeeder extends Seeder
9+
{
10+
public function run()
11+
{
12+
DB::table('tb_DeThi')->insert([
13+
[
14+
'tenDe' => 'Đề thi PHP cơ bản',
15+
'soLuongCauHoi' => 10,
16+
'tiLeKho' => 20,
17+
'tiLeTrungBinh' => 50,
18+
'tiLeDe' => 30,
19+
'cauHoi' => json_encode([1, 2, 3, 4, 5]),
20+
'thoiGian' => 90,
21+
'monhoc_id' => 1,
22+
'cathi_id' => 1,
23+
'created_at' => now(),
24+
'updated_at' => now(),
25+
],
26+
]);
27+
}
28+
}

database/seeders/KetQuaSeeder.php

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
8+
class KetQuaSeeder extends Seeder
9+
{
10+
public function run()
11+
{
12+
DB::table('tb_KetQua')->insert([
13+
[
14+
'diemSo' => 8.5,
15+
'danhSachDapAn' => json_encode([1 => true, 2 => false, 3 => true]),
16+
'dethi_id' => 1,
17+
'sinhvien_id' => 1,
18+
'created_at' => now(),
19+
'updated_at' => now(),
20+
],
21+
]);
22+
}
23+
}

database/seeders/KhoaSeeder.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
8+
class KhoaSeeder extends Seeder
9+
{
10+
public function run()
11+
{
12+
DB::table('tb_Khoa')->insert([
13+
['maKhoa' => 'K1', 'tenKhoa' => 'Công nghệ thông tin', 'created_at' => now(), 'updated_at' => now()],
14+
['maKhoa' => 'K2', 'tenKhoa' => 'Kinh tế', 'created_at' => now(), 'updated_at' => now()],
15+
['maKhoa' => 'K3', 'tenKhoa' => 'Kỹ thuật', 'created_at' => now(), 'updated_at' => now()],
16+
]);
17+
}
18+
}

database/seeders/KyThiSeeder.php

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
use Faker\Factory as Faker;
8+
9+
class KyThiSeeder extends Seeder
10+
{
11+
public function run()
12+
{
13+
$faker = Faker::create('vi_VN');
14+
15+
DB::table('tb_KyThi')->insert([
16+
[
17+
'tenKyThi' => 'Kỳ thi cuối kỳ 2024',
18+
'ngayBatDau' => $faker->dateTimeBetween('now', '+1 week'),
19+
'ngayKetThuc' => $faker->dateTimeBetween('+1 week', '+2 weeks'),
20+
'created_at' => now(),
21+
'updated_at' => now(),
22+
],
23+
]);
24+
}
25+
}

database/seeders/LopSeeder.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
8+
class LopSeeder extends Seeder
9+
{
10+
public function run()
11+
{
12+
DB::table('tb_Lop')->insert([
13+
['maLop' => 'CNTT01', 'tenLop' => 'Lớp CNTT 01', 'nganh_id' => 1, 'created_at' => now(), 'updated_at' => now()],
14+
['maLop' => 'CNTT02', 'tenLop' => 'Lớp CNTT 02', 'nganh_id' => 1, 'created_at' => now(), 'updated_at' => now()],
15+
['maLop' => 'KD01', 'tenLop' => 'Lớp Kinh doanh 01', 'nganh_id' => 2, 'created_at' => now(), 'updated_at' => now()],
16+
]);
17+
}
18+
}

database/seeders/MonHocSeeder.php

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
8+
class MonHocSeeder extends Seeder
9+
{
10+
public function run()
11+
{
12+
DB::table('tb_MonHoc')->insert([
13+
['maMonHoc' => 'PHP101', 'tenMonHoc' => 'Lập trình PHP', 'nganh_id' => 1, 'created_at' => now(), 'updated_at' => now()],
14+
['maMonHoc' => 'DB101', 'tenMonHoc' => 'Cơ sở dữ liệu', 'nganh_id' => 1, 'created_at' => now(), 'updated_at' => now()],
15+
['maMonHoc' => 'BUS101', 'tenMonHoc' => 'Quản trị kinh doanh', 'nganh_id' => 2, 'created_at' => now(), 'updated_at' => now()],
16+
]);
17+
}
18+
}

database/seeders/NganhSeeder.php

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
8+
class NganhSeeder extends Seeder
9+
{
10+
public function run()
11+
{
12+
DB::table('tb_Nganh')->insert([
13+
['maNganh' => 'CNTT', 'tenNganh' => 'Công nghệ thông tin', 'khoa_id' => 1, 'created_at' => now(), 'updated_at' => now()],
14+
['maNganh' => 'KD', 'tenNganh' => 'Kinh doanh', 'khoa_id' => 2, 'created_at' => now(), 'updated_at' => now()],
15+
]);
16+
}
17+
}

database/seeders/PhongThiSeeder.php

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Illuminate\Support\Facades\DB;
7+
use Illuminate\Support\Facades\Hash;
8+
use Faker\Factory as Faker;
9+
10+
class PhongThiSeeder extends Seeder
11+
{
12+
public function run()
13+
{
14+
// lấy msv
15+
$maSVs = DB::table('tb_SinhVien')->pluck('maSV')->toArray();
16+
17+
// random 10 maSV
18+
$selectedMaSVs = array_rand(array_flip($maSVs), 10);
19+
20+
DB::table('tb_PhongThi')->insert([
21+
[
22+
'tenPhongThi' => 'Phòng A1',
23+
'danhSachSinhVien' => json_encode($selectedMaSVs),
24+
'cathi_id' => 1,
25+
'created_at' => now(),
26+
'updated_at' => now(),
27+
],
28+
]);
29+
}
30+
}

0 commit comments

Comments
 (0)