File: /var/www/html/spion/app/Http/Controllers/TicketController.php
<?php
namespace App\Http\Controllers;
use App\Models\Ticket;
use Illuminate\Http\Request;
use Yajra\DataTables\Facades\DataTables;
class TicketController extends Controller
{
public function index()
{
return view('admin.tickets.index');
}
// Fetch tickets data for DataTables
public function getTicketsData(Request $request)
{
$query = Ticket::query();
// Apply search filter
if ($request->has('search_keyword')) {
$search = $request->get('search_keyword');
$query->where('email', 'like', '%' . $search . '%')
->orWhere('subject', 'like', '%' . $search . '%');
}
// Apply status filter
if ($request->has('status_filter') && $request->status_filter !== 'all') {
$query->where('status', $request->status_filter);
}
// Return data in a format that DataTables can process
return DataTables::eloquent($query)
->addColumn('status', function ($row) {
return $row->status ? 'Active' : 'Disabled';
})
->addColumn('action', function ($ticket) {
return '<button class="btn btn-info btn-sm">View</button>';
})
->rawColumns(['action'])
->make(true);
}
}