FAQ module for the Afea Filament CMS package ecosystem.
Ships:
FaqandFaqCategorymodelsHasFaqstrait — add to any model to attach FAQs polymorphically through thefaqablespivot (carriesorderso each host orders its FAQs independently)FaqResource,FaqCategoryResource(Filament v4) with reorderable tablesFaqsRelationManager— drop into any resource whose model usesHasFaqsFaqPluginfor panel registrationafea:install:faqinstaller
composer require afea/filament-faq
php artisan afea:install:faqRegister in AdminPanelProvider:
->plugin(\Afea\Cms\Faq\Filament\FaqPlugin::make())use Afea\Cms\Faq\Concerns\HasFaqs;
class BlogPost extends Model
{
use HasFaqs;
}use Afea\Cms\Faq\Filament\RelationManagers\FaqsRelationManager;
class BlogPostResource extends Resource
{
public static function getRelations(): array
{
return [FaqsRelationManager::class];
}
}$post->faqs; // ordered by pivot `order`
$post->activeFaqs(); // only active FAQs
$post->syncFaqs([$idA, $idB]); // reorder atomicallyclass Faq extends \Afea\Cms\Faq\Models\Faq
{
public function scopeVerified(Builder $q): Builder
{
return $q->active()->whereNotNull('faq_category_id');
}
}'models' => ['faq' => \App\Models\Faq::class],$post->syncFaqs(\Afea\Cms\Faq\Models\Faq::pluck('id')->all());@foreach ($page->activeFaqs() as $faq)
<details>
<summary>{{ $faq->question }}</summary>
<div class="prose">{!! $faq->answer !!}</div>
</details>
@endforeach