<?php
namespace App\Http\Livewire;
use Livewire\Component;
class DynamicForm extends Component
{
public $selectedCategory = null;
public $subcategories = [];
public function updatedSelectedCategory($category)
{
$this->subcategories = $this->getSubcategories($category);
}
public function getSubcategories($category)
{
// This is where you'd fetch subcategories from the database or an API based on the category
$subcategoriesData = [
'technology' => ['Web Development', 'Mobile Development', 'AI & ML'],
'business' => ['Marketing', 'Finance', 'Entrepreneurship'],
'design' => ['Graphic Design', 'UI/UX Design', '3D Modeling']
];
return $subcategoriesData[$category] ?? [];
}
public function render()
{
return view('livewire.dynamic-form', [
'categories' => ['technology', 'business', 'design']
]);
}
}
Next, create the Blade view for this component in resources/views/livewire/dynamic-form.blade.php
.