123 lines
4.1 KiB
PHP
123 lines
4.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
class adminmycoursesController extends Controller
|
|
{
|
|
|
|
public function index()
|
|
{
|
|
if (!session()->has('admin_id')) {
|
|
return redirect('/adminlogin')->with('error', 'Please login first!');
|
|
}
|
|
|
|
$courses = DB::table('courses')->orderBy('id', 'desc')->get();
|
|
return view('admin.adminmycourses', compact('courses'));
|
|
}
|
|
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'title' => 'required|string|max:255',
|
|
'course_code' => 'required|string|max:50',
|
|
'image' => 'nullable|image|mimes:jpeg,png,jpg,gif,webp|max:2048',
|
|
'duration' => 'required|string',
|
|
'level' => 'required|string',
|
|
'author' => 'nullable|string',
|
|
'desc' => 'nullable|string',
|
|
'status' => 'required|string',
|
|
]);
|
|
|
|
$imagePath = null;
|
|
if ($request->hasFile('image')) {
|
|
$imagePath = $request->file('image')->store('courses', 'public');
|
|
}
|
|
|
|
DB::table('courses')->insert([
|
|
'title' => $request->title,
|
|
'course_code' => $request->course_code,
|
|
'image' => $imagePath,
|
|
'duration' => $request->duration,
|
|
'level' => $request->level,
|
|
'author' => $request->author ?? 'Admin',
|
|
'desc' => $request->desc,
|
|
'student' => $request->student ?? 0,
|
|
'rating' => $request->rating ?? 0.0,
|
|
'badge' => $request->badge,
|
|
'trending' => $request->has('trending') ? 1 : 0,
|
|
'status' => $request->status,
|
|
'created_at' => now(),
|
|
'updated_at' => now(),
|
|
]);
|
|
|
|
return redirect()->back()->with('success', 'Course added successfully!');
|
|
}
|
|
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
$request->validate([
|
|
'title' => 'required|string|max:255',
|
|
'course_code' => 'required|string|max:50',
|
|
'image' => 'nullable|image|mimes:jpeg,png,jpg,gif,webp|max:2048',
|
|
'duration' => 'required|string',
|
|
'level' => 'required|string',
|
|
'status' => 'required|string',
|
|
]);
|
|
|
|
$course = DB::table('courses')->where('id', $id)->first();
|
|
|
|
if (!$course) {
|
|
return redirect()->back()->with('error', 'Course not found!');
|
|
}
|
|
|
|
$imagePath = $course->image;
|
|
if ($request->hasFile('image')) {
|
|
if ($course->image && Storage::disk('public')->exists($course->image)) {
|
|
Storage::disk('public')->delete($course->image);
|
|
}
|
|
$imagePath = $request->file('image')->store('courses', 'public');
|
|
}
|
|
|
|
DB::table('courses')->where('id', $id)->update([
|
|
'title' => $request->title,
|
|
'course_code' => $request->course_code,
|
|
'image' => $imagePath,
|
|
'duration' => $request->duration,
|
|
'level' => $request->level,
|
|
'author' => $request->author,
|
|
'desc' => $request->desc,
|
|
'badge' => $request->badge,
|
|
'trending' => $request->has('trending') ? 1 : 0,
|
|
'status' => $request->status,
|
|
'updated_at' => now(),
|
|
]);
|
|
|
|
return redirect()->back()->with('success', 'Course updated successfully!');
|
|
}
|
|
|
|
|
|
public function destroy($id)
|
|
{
|
|
$course = DB::table('courses')->where('id', $id)->first();
|
|
|
|
if ($course) {
|
|
|
|
if ($course->image && Storage::disk('public')->exists($course->image)) {
|
|
Storage::disk('public')->delete($course->image);
|
|
}
|
|
|
|
|
|
DB::table('courses')->where('id', $id)->delete();
|
|
|
|
return redirect()->back()->with('success', 'Course deleted successfully!');
|
|
}
|
|
|
|
return redirect()->back()->with('error', 'Course not found!');
|
|
}
|
|
} |