Recaje-New/app/Http/Controllers/ContactController.php

71 lines
2.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\ContactMessage;
use Illuminate\Http\Request;
class ContactController extends Controller
{
/**
* Store a newly created contact message in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255',
'message' => 'required|string',
]);
ContactMessage::create($validated);
return redirect()->back()->with('success', 'Pesan Anda telah terkirim! Terima kasih telah menghubungi kami.');
}
/**
* Display a listing of contact messages for admin.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$messages = ContactMessage::orderBy('created_at', 'desc')->paginate(10);
return view('admin.contact-messages.index', compact('messages'));
}
/**
* Display the specified contact message.
*
* @param \App\Models\ContactMessage $contactMessage
* @return \Illuminate\Http\Response
*/
public function show(ContactMessage $contactMessage)
{
// Mark as read
if (!$contactMessage->is_read) {
$contactMessage->is_read = true;
$contactMessage->save();
}
return view('admin.contact-messages.show', compact('contactMessage'));
}
/**
* Remove the specified contact message from storage.
*
* @param \App\Models\ContactMessage $contactMessage
* @return \Illuminate\Http\Response
*/
public function destroy(ContactMessage $contactMessage)
{
$contactMessage->delete();
return redirect()->route('admin.contact-messages.index')
->with('success', 'Pesan kontak berhasil dihapus.');
}
}