HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/spion/app/Http/Controllers/Front/TicketController.php
<?php

namespace App\Http\Controllers\Front;

use App\Http\Controllers\Controller;
use App\Models\Admin;
use App\Models\Ticket;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;

class TicketController extends Controller
{
    public function store(Request $request)
    {
        // Validate the request
        $request->validate([
            'email' => 'required|email',
            'subject' => 'required|string|max:255',
            'message' => 'required|string',
        ]);

        $ticket = Ticket::create([
            'user_id' => auth()->id(), 
            'email' => $request->email,
            'subject' => $request->subject,
            'message' => $request->message,
        ]);
        
         // Fetch all admins
        $admins = Admin::where('is_admin', 1)->get();

        // Send an email to admin
        foreach ($admins as $admin) {
            Mail::send('mail.ticket', [
                'userId' => $ticket->user_id,
                'name' => auth()->user()->first_name . ' ' . auth()->user()->last_name,
                'email' => $ticket->email,
                'subject' => $ticket->subject,
                'messageContent' => $ticket->message,
            ], function ($message) use ($admin) {
                $message->to($admin->email) 
                    ->subject('New Ticket Raised');
            });
        }

        return response()->json(['status'=>true, 'message' => 'Ticket submitted successfully.'], 200);
    }

    public function index()
    {
        $tickets = Ticket::all();
        return view('admin.tickets', compact('tickets'));
    }
}