File: /home/armgroup/libs/app/Http/Livewire/Admin/Faq/Edit.php
<?php
namespace App\Http\Livewire\Admin\Faq;
use App\Http\Livewire\ConvertEmptyStringsToNull;
use App\Http\Livewire\General;
use App\Models\Category;
use App\Models\Faq;
use Illuminate\Support\Facades\DB;
use Illuminate\Validation\Rule;
use Livewire\Component;
class Edit extends Component
{
use ConvertEmptyStringsToNull, General;
public Faq $faq;
public $categories;
public $category_id;
public function mount()
{
$this->categories = Category::query()
->where('type', Faq::class)
->select('id', 'name')
->get();
$this->category_id = $this->faq->categories()->pluck('id')->toArray()[0] ?? null;
}
protected function rules()
{
return [
'faq.question' => 'required|string|max:60000',
'faq.answer' => 'required|string|max:60000',
'faq.sort_order' => 'nullable|integer|min:0|max:100',
'faq.status' => 'required|in:0,1',
'category_id' => ['required', Rule::exists('categories', 'id')
->where(function ($query) {
return $query->where('type', Faq::class);
})],
];
}
public function render()
{
return view('livewire.admin.faq.edit');
}
public function update()
{
DB::transaction(function () {
$this->faq->update($this->validate());
$this->faq->categories()->sync([$this->category_id]);
});
$this->doneMessage();
return redirect()->route('admin.faqs.index');
}
}