academy/app/Http/Controllers/FeedbackController.php

77 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class FeedbackController extends Controller
{
public function index(Request $request)
{
$studentLogId = session('student_log_id') ?? session('student_id');
if (!$studentLogId) {
return redirect('/')->with('error', 'Please login first!');
}
$feedbacks = DB::table('feedback')
->where('student_id', $studentLogId)
->orderBy('created_at', 'desc')
->get();
return view('Feedback&Complain', compact('feedbacks'));
}
public function store(Request $request)
{
$studentLogId = session('student_log_id') ?? session('student_id');
if (!$studentLogId) {
return redirect('/')->with('error', 'Please login first to submit!');
}
$isComplaint = $request->has('is_complaint') && $request->is_complaint == "1";
if ($isComplaint) {
$request->validate([
'complaint_category' => 'required',
'complaint_title' => 'required|string|max:255',
'complaint_details' => 'required|string',
]);
$type = 'Complaint - ' . $request->complaint_category;
$subject = $request->complaint_title;
$text = $request->complaint_details;
} else {
$request->validate([
'feedback_type' => 'required',
'subject' => 'required|string|max:255',
'feedback_text' => 'required|string',
]);
$type = 'Feedback - ' . $request->feedback_type;
$subject = $request->subject;
$text = $request->feedback_text;
}
DB::table('feedback')->insert([
'student_id' => $studentLogId,
'feedback_type' => $type,
'subject' => $subject,
'feedback_text' => $text,
'status' => 'Pending',
'created_at' => now(),
'updated_at' => now(),
]);
return redirect()->back()->with('success', ($isComplaint ? 'Complaint' : 'Feedback') . ' submitted successfully!');
}
}