MIF_E31230356/app/Http/Controllers/Siswa/MateriController.php

59 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers\Siswa;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use App\Models\Mengajar;
use App\Models\Materi;
class MateriController extends Controller
{
public function __construct()
{
$this->middleware('auth:siswa');
}
/**
* Halaman daftar mata pelajaran siswa
*/
public function index()
{
$siswa = Auth::guard('siswa')->user();
// Ambil semua mapel yang diajarkan di kelas siswa ini
$mapelList = Mengajar::with(['mapel', 'guru'])
->where('id_kelas', $siswa->id_kelas)
->get()
->map(function ($mengajar) {
return [
'id_mengajar' => $mengajar->id_mengajar,
'nama_mapel' => optional($mengajar->mapel)->nama_mapel ?? '-',
'nama_guru' => optional($mengajar->guru)->nama ?? '-',
'jumlah_materi' => Materi::where('id_mengajar', $mengajar->id_mengajar)->count(),
];
});
return view('siswa.materi.index', compact('mapelList'));
}
/**
* Halaman daftar materi per mata pelajaran
*/
public function show($id_mengajar)
{
$siswa = Auth::guard('siswa')->user();
// Pastikan mengajar ini memang untuk kelas siswa
$mengajar = Mengajar::with(['mapel', 'guru'])
->where('id_mengajar', $id_mengajar)
->where('id_kelas', $siswa->id_kelas)
->firstOrFail();
$materiList = Materi::where('id_mengajar', $id_mengajar)
->orderBy('tanggal_upload', 'desc')
->get();
return view('siswa.materi.show', compact('mengajar', 'materiList'));
}
}