59 lines
1.7 KiB
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'));
|
|
}
|
|
} |