77 lines
2.2 KiB
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!');
|
|
}
|
|
|
|
} |