83 lines
3.0 KiB
PHP
83 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\Pembelajaran;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Session;
|
|
|
|
class PembelajaranController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
// Ambil semua pembelajaran yang dibuat oleh user yang sedang login
|
|
$pembelajarans = Pembelajaran::where('user_id', Auth::id())->get();
|
|
|
|
// Ambil daftar user untuk form tambah pembelajaran
|
|
$users = \App\Models\User::all();
|
|
$users = \App\Models\User::with('student')->get();
|
|
|
|
return view('admin.pembelajaran.index', compact('pembelajarans', 'users'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'judul' => 'required|string|max:255',
|
|
'deskripsi' => 'required|string',
|
|
'video' => 'nullable|file|mimes:mp4,mov,avi|max:20480',
|
|
'audio' => 'nullable|file|mimes:mp3,wav|max:10240',
|
|
'bacaan' => 'nullable|string',
|
|
'user_ids' => 'required|array',
|
|
'user_ids.*' => 'exists:users,id',
|
|
]);
|
|
|
|
// Handle file video
|
|
$namaVideo = null;
|
|
if ($request->hasFile('video')) {
|
|
if (!file_exists(public_path('video'))) {
|
|
mkdir(public_path('video'), 0777, true);
|
|
}
|
|
$namaVideo = time() . '_' . $request->file('video')->getClientOriginalName();
|
|
$request->file('video')->move(public_path('video'), $namaVideo);
|
|
}
|
|
|
|
// Handle file audio jika ada
|
|
$namaAudio = null;
|
|
if ($request->hasFile('audio')) {
|
|
if (!file_exists(public_path('audio'))) {
|
|
mkdir(public_path('audio'), 0777, true);
|
|
}
|
|
$namaAudio = time() . '_' . $request->file('audio')->getClientOriginalName();
|
|
$request->file('audio')->move(public_path('audio'), $namaAudio);
|
|
}
|
|
|
|
// Simpan pembelajaran
|
|
$pembelajaran = Pembelajaran::create([
|
|
'user_id' => Auth::id(),
|
|
'judul' => $request->judul,
|
|
'deskripsi' => $request->deskripsi,
|
|
'video' => $namaVideo,
|
|
'audio' => $namaAudio,
|
|
'bacaan' => $request->bacaan,
|
|
]);
|
|
|
|
// Attach ke pivot table pembelajaran_user
|
|
$pembelajaran->users()->attach($request->user_ids);
|
|
|
|
return redirect()->back()->with('success', 'Pembelajaran berhasil disimpan dan dikirim ke murid!');
|
|
}
|
|
|
|
public function destroy(Pembelajaran $pembelajaran)
|
|
{
|
|
// Pastikan hanya pemilik pembelajaran yang dapat menghapus
|
|
if ($pembelajaran->user_id !== Auth::id()) {
|
|
return redirect()->route('pembelajaran.index')->with('error', 'Anda tidak memiliki izin untuk menghapus pembelajaran ini.');
|
|
}
|
|
|
|
$pembelajaran->delete();
|
|
|
|
return redirect()->route('pembelajaran.index')->with('success', 'Pembelajaran berhasil dihapus.');
|
|
}
|
|
} |