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