File: /home/armgroup/libs/app/Http/Livewire/Admin/Faq/Create.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 Create extends Component
{
use ConvertEmptyStringsToNull, General;
public $question;
public $answer;
public $sort_order;
public $status = 1;
public $categories;
public $category_id;
public function mount()
{
$this->categories = Category::query()
->where('type', Faq::class)
->select('id', 'name')
->get();
}
public function render()
{
return view('livewire.admin.faq.create');
}
protected function rules()
{
return [
'question' => 'required|string|max:60000',
'answer' => 'required|string|max:60000',
'sort_order' => 'nullable|integer|min:0|max:100',
'status' => 'required|in:0,1',
'category_id' => ['required', Rule::exists('categories', 'id')->where(function ($query) {
return $query->where('type', Faq::class);
})],
];
}
public function store()
{
DB::transaction(function () {
$faq = Faq::create($this->validate());
$faq->categories()->attach([$this->category_id]);
});
$this->doneMessage();
return redirect()->route('admin.faqs.index');
}
}