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'));
}
}